xref: /llvm-project/llvm/test/CodeGen/X86/dont-trunc-store-double-to-float.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=i686-- < %s | FileCheck %s
3
4define void @bar() unnamed_addr {
5; CHECK-LABEL: bar:
6; CHECK:       # %bb.0: # %entry-block
7; CHECK-NEXT:    pushl %ebp
8; CHECK-NEXT:    .cfi_def_cfa_offset 8
9; CHECK-NEXT:    .cfi_offset %ebp, -8
10; CHECK-NEXT:    movl %esp, %ebp
11; CHECK-NEXT:    .cfi_def_cfa_register %ebp
12; CHECK-NEXT:    andl $-8, %esp
13; CHECK-NEXT:    subl $16, %esp
14; CHECK-NEXT:    movl $1074339512, {{[0-9]+}}(%esp) # imm = 0x40091EB8
15; CHECK-NEXT:    movl $1374389535, (%esp) # imm = 0x51EB851F
16; CHECK-NEXT:    movl $1078523331, {{[0-9]+}}(%esp) # imm = 0x4048F5C3
17; CHECK-NEXT:    movl %ebp, %esp
18; CHECK-NEXT:    popl %ebp
19; CHECK-NEXT:    .cfi_def_cfa %esp, 4
20; CHECK-NEXT:    retl
21entry-block:
22  %a = alloca double
23  %b = alloca float
24
25  store double 3.140000e+00, ptr %a
26  %0 = load double, ptr %a
27
28  %1 = fptrunc double %0 to float
29
30  store float %1, ptr %b
31
32  ret void
33}
34