Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 | FileCheck %s
      2 
      3 define void @shuffle_v16i16(<16 x i16>* %a) {
      4 ; CHECK-LABEL: shuffle_v16i16:
      5 ; CHECK: vpshufb {{.*}}%ymm
      6 ; CHECK-NOT: vpshufb {{.*}}%xmm
      7 entry:
      8   %0 = load <16 x i16>* %a, align 32
      9   %shuffle = shufflevector <16 x i16> %0, <16 x i16> undef, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
     10   store <16 x i16> %shuffle, <16 x i16>* %a, align 32
     11   ret void
     12 }
     13 
     14 define void @shuffle_v16i16_lanecrossing(<16 x i16>* %a) {
     15 ; CHECK-LABEL: shuffle_v16i16_lanecrossing:
     16 ; CHECK-NOT: vpshufb {{.*}}%ymm
     17 entry:
     18   %0 = load <16 x i16>* %a, align 32
     19   %shuffle = shufflevector <16 x i16> %0, <16 x i16> undef, <16 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 13, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15, i32 15>
     20   store <16 x i16> %shuffle, <16 x i16>* %a, align 32
     21   ret void
     22 }
     23