Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-pc-linux -mcpu=corei7-avx | FileCheck %s
      2 
      3 define <4 x i3> @test1(<4 x i3>* %in) nounwind {
      4   %ret = load <4 x i3>* %in, align 1
      5   ret <4 x i3> %ret
      6 }
      7 
      8 ; CHECK: test1
      9 ; CHECK: movzwl
     10 ; CHECK: shrl $3
     11 ; CHECK: andl $7
     12 ; CHECK: andl $7
     13 ; CHECK: vmovd
     14 ; CHECK: pinsrd $1
     15 ; CHECK: shrl $6
     16 ; CHECK: andl $7
     17 ; CHECK: pinsrd $2
     18 ; CHECK: shrl $9
     19 ; CHECK: andl $7
     20 ; CHECK: pinsrd $3
     21 ; CHECK: ret
     22 
     23 define <4 x i1> @test2(<4 x i1>* %in) nounwind {
     24   %ret = load <4 x i1>* %in, align 1
     25   ret <4 x i1> %ret
     26 }
     27 
     28 ; CHECK: test2
     29 ; CHECK: movzbl
     30 ; CHECK: shrl
     31 ; CHECK: andl $1
     32 ; CHECK: andl $1
     33 ; CHECK: vmovd
     34 ; CHECK: pinsrd $1
     35 ; CHECK: shrl $2
     36 ; CHECK: andl $1
     37 ; CHECK: pinsrd $2
     38 ; CHECK: shrl $3
     39 ; CHECK: andl $1
     40 ; CHECK: pinsrd $3
     41 ; CHECK: ret
     42 
     43 define <4 x i64> @test3(<4 x i1>* %in) nounwind {
     44   %wide.load35 = load <4 x i1>* %in, align 1
     45   %sext = sext <4 x i1> %wide.load35 to <4 x i64>
     46   ret <4 x i64> %sext
     47 }
     48 
     49 ; CHECK: test3
     50 ; CHECK: movzbl
     51 ; CHECK: shrl
     52 ; CHECK: andl $1
     53 ; CHECK: andl $1
     54 ; CHECK: vmovd
     55 ; CHECK: pinsrd $1
     56 ; CHECK: shrl $2
     57 ; CHECK: andl $1
     58 ; CHECK: pinsrd $2
     59 ; CHECK: shrl $3
     60 ; CHECK: andl $1
     61 ; CHECK: pinsrd $3
     62 ; CHECK: pslld
     63 ; CHECK: psrad
     64 ; CHECK: pmovsxdq
     65 ; CHECK: pmovsxdq
     66 ; CHECK: ret
     67