aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/ARM/freeze-soften.ll
blob: 4148a750df98ed8b773cbbdaa7fc1f9aa78d270b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; RUN: llc -mtriple=thumbv8m.main-none-eabi %s -o - | FileCheck %s

; Check that freeze operations on floating types are successfully softened.

; CHECK-LABEL: sitofp_f32_i32:
; CHECK: bl __aeabi_i2f
define float @sitofp_f32_i32(i32 %x) #0 {
  %val = call float @llvm.experimental.constrained.sitofp.f32.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0
  %val.fr = freeze float %val
  ret float %val.fr
}

attributes #0 = { strictfp }

declare float @llvm.experimental.constrained.sitofp.f32.i32(i32, metadata, metadata)
declare double @llvm.experimental.constrained.sitofp.f64.i32(i32, metadata, metadata)