Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
      2 
      3 define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp {
      4 ;CHECK-LABEL: zext_8i16_to_8i32:
      5 ;CHECK: vpunpckhwd
      6 ;CHECK: ret
      7 
      8   %B = zext <8 x i16> %A to <8 x i32>
      9   ret <8 x i32>%B
     10 }
     11 
     12 define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp {
     13 ;CHECK-LABEL: zext_4i32_to_4i64:
     14 ;CHECK: vpunpckhdq
     15 ;CHECK: ret
     16 
     17   %B = zext <4 x i32> %A to <4 x i64>
     18   ret <4 x i64>%B
     19 }
     20 
     21 define <8 x i32> @zext_8i8_to_8i32(<8 x i8> %z) {
     22 ;CHECK-LABEL: zext_8i8_to_8i32:
     23 ;CHECK: vpunpckhwd
     24 ;CHECK: vpmovzxwd
     25 ;CHECK: vinsertf128
     26 ;CHECK: ret
     27   %t = zext <8 x i8> %z to <8 x i32>
     28   ret <8 x i32> %t
     29 }
     30 
     31 ; PR17654
     32 define <16 x i16> @zext_16i8_to_16i16(<16 x i8> %z) {
     33 ; CHECK-LABEL: zext_16i8_to_16i16:
     34 ; CHECK: vpxor
     35 ; CHECK: vpunpckhbw
     36 ; CHECK: vpunpcklbw
     37 ; CHECK: vinsertf128
     38 ; CHECK: ret
     39   %t = zext <16 x i8> %z to <16 x i16>
     40   ret <16 x i16> %t
     41 }
     42