Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
      2 ; RUN: llc < %s -march=x86 -mcpu=core-avx-i | FileCheck %s --check-prefix=AVX
      3 
      4 define <1 x float> @test1(<1 x double> %x) nounwind {
      5 ; CHECK: test1
      6 ; CHECK: cvtsd2ss
      7 ; CHECK: ret
      8 ; AVX:   test1
      9 ; AVX:   vcvtsd2ss
     10 ; AVX:   ret
     11   %y = fptrunc <1 x double> %x to <1 x float>
     12   ret <1 x float> %y
     13 }
     14 
     15 define <2 x float> @test2(<2 x double> %x) nounwind {
     16 ; CHECK: test2
     17 ; CHECK: cvtpd2ps
     18 ; CHECK: ret
     19 ; AVX:   test2
     20 ; AVX-NOT:  vcvtpd2psy
     21 ; AVX:   vcvtpd2ps
     22 ; AVX:   ret
     23   %y = fptrunc <2 x double> %x to <2 x float>
     24   ret <2 x float> %y
     25 }
     26 
     27 define <4 x float> @test3(<4 x double> %x) nounwind {
     28 ; CHECK: test3
     29 ; CHECK: cvtpd2ps
     30 ; CHECK: cvtpd2ps
     31 ; CHECK: movlhps
     32 ; CHECK: ret
     33 ; AVX:   test3
     34 ; AVX:   vcvtpd2psy
     35 ; AVX:   ret
     36   %y = fptrunc <4 x double> %x to <4 x float>
     37   ret <4 x float> %y
     38 }
     39 
     40 define <8 x float> @test4(<8 x double> %x) nounwind {
     41 ; CHECK: test4
     42 ; CHECK: cvtpd2ps
     43 ; CHECK: cvtpd2ps
     44 ; CHECK: movlhps
     45 ; CHECK: cvtpd2ps
     46 ; CHECK: cvtpd2ps
     47 ; CHECK: movlhps
     48 ; CHECK: ret
     49 ; AVX:   test4
     50 ; AVX:   vcvtpd2psy
     51 ; AVX:   vcvtpd2psy
     52 ; AVX:   vinsertf128
     53 ; AVX:   ret
     54   %y = fptrunc <8 x double> %x to <8 x float>
     55   ret <8 x float> %y
     56 }
     57 
     58 
     59