brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · e91a6c2 Raw
77 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mcpu=i686 -mattr=+sse | FileCheck %s3; RUN: llc < %s -mcpu=i686 -mattr=-sse 2>&1 | FileCheck --check-prefix NOSSE %s4 5target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"6target triple = "i386-unknown-linux-gnu"7@f = external dso_local global float8@d = external dso_local global double9 10define void @test() nounwind {11; CHECK-LABEL: test:12; CHECK:       # %bb.0: # %entry13; CHECK-NEXT:    subl $12, %esp14; CHECK-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero15; CHECK-NEXT:    movss %xmm0, (%esp)16; CHECK-NEXT:    calll foo1@PLT17; CHECK-NEXT:    fstps f18; CHECK-NEXT:    fldl d19; CHECK-NEXT:    fstpl (%esp)20; CHECK-NEXT:    calll foo2@PLT21; CHECK-NEXT:    fstpl d22; CHECK-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero23; CHECK-NEXT:    movss %xmm0, (%esp)24; CHECK-NEXT:    calll foo3@PLT25; CHECK-NEXT:    fstps f26; CHECK-NEXT:    fldl d27; CHECK-NEXT:    fstpl (%esp)28; CHECK-NEXT:    calll foo4@PLT29; CHECK-NEXT:    fstpl d30; CHECK-NEXT:    addl $12, %esp31; CHECK-NEXT:    retl32;33; NOSSE-LABEL: test:34; NOSSE:       # %bb.0: # %entry35; NOSSE-NEXT:    subl $12, %esp36; NOSSE-NEXT:    flds f37; NOSSE-NEXT:    fstps (%esp)38; NOSSE-NEXT:    calll foo1@PLT39; NOSSE-NEXT:    fstps f40; NOSSE-NEXT:    fldl d41; NOSSE-NEXT:    fstpl (%esp)42; NOSSE-NEXT:    calll foo2@PLT43; NOSSE-NEXT:    fstpl d44; NOSSE-NEXT:    flds f45; NOSSE-NEXT:    fstps (%esp)46; NOSSE-NEXT:    calll foo3@PLT47; NOSSE-NEXT:    fstps f48; NOSSE-NEXT:    fldl d49; NOSSE-NEXT:    fstpl (%esp)50; NOSSE-NEXT:    calll foo4@PLT51; NOSSE-NEXT:    fstpl d52; NOSSE-NEXT:    addl $12, %esp53; NOSSE-NEXT:    retl54entry:55  %0 = load float, ptr @f, align 456  %1 = tail call inreg float @foo1(float inreg %0) nounwind57  store float %1, ptr @f, align 458  %2 = load double, ptr @d, align 859  %3 = tail call inreg double @foo2(double inreg %2) nounwind60  store double %3, ptr @d, align 861  %4 = load float, ptr @f, align 462  %5 = tail call inreg float @foo3(float inreg %4) nounwind63  store float %5, ptr @f, align 464  %6 = load double, ptr @d, align 865  %7 = tail call inreg double @foo4(double inreg %6) nounwind66  store double %7, ptr @d, align 867  ret void68}69 70declare inreg float @foo1(float inreg)71 72declare inreg double @foo2(double inreg)73 74declare inreg float @foo3(float inreg)75 76declare inreg double @foo4(double inreg)77