xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple x86_64-apple-darwin | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @bar(i32 %argc) #0 {
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar:
5*9880d681SAndroid Build Coastguard Worker; CHECK: pushq %rbp
6*9880d681SAndroid Build Coastguard Workerentry:
7*9880d681SAndroid Build Coastguard Worker  %conv = sitofp i32 %argc to double
8*9880d681SAndroid Build Coastguard Worker  %mul = fmul double %conv, 3.792700e+01
9*9880d681SAndroid Build Coastguard Worker  %conv1 = fptrunc double %mul to float
10*9880d681SAndroid Build Coastguard Worker  %div = fdiv double 9.273700e+02, %conv
11*9880d681SAndroid Build Coastguard Worker  %conv3 = fptrunc double %div to float
12*9880d681SAndroid Build Coastguard Worker  tail call void @foo(float %conv1, float %conv3)
13*9880d681SAndroid Build Coastguard Worker  ret void
14*9880d681SAndroid Build Coastguard Worker}
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workerdefine void @qux(i32 %argc) #1 {
17*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: qux:
18*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: pushq %rbp
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker  %conv = sitofp i32 %argc to double
21*9880d681SAndroid Build Coastguard Worker  %mul = fmul double %conv, 3.792700e+01
22*9880d681SAndroid Build Coastguard Worker  %conv1 = fptrunc double %mul to float
23*9880d681SAndroid Build Coastguard Worker  %div = fdiv double 9.273700e+02, %conv
24*9880d681SAndroid Build Coastguard Worker  %conv3 = fptrunc double %div to float
25*9880d681SAndroid Build Coastguard Worker  tail call void @foo(float %conv1, float %conv3)
26*9880d681SAndroid Build Coastguard Worker  ret void
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerdeclare void @foo(float, float)
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerattributes #0 = { "no-frame-pointer-elim"="true" }
32*9880d681SAndroid Build Coastguard Workerattributes #1 = { "no-frame-pointer-elim"="false" }
33