; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s define <8 x i32> @test1(<8 x i32> %A, <8 x i32> %B) nounwind { ; CHECK-LABEL: test1: ; CHECK: vpalignr $4 %C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> ret <8 x i32> %C } define <8 x i32> @test2(<8 x i32> %A, <8 x i32> %B) nounwind { ; CHECK-LABEL: test2: ; CHECK: vpalignr $4 %C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> ret <8 x i32> %C } define <8 x i32> @test3(<8 x i32> %A, <8 x i32> %B) nounwind { ; CHECK-LABEL: test3: ; CHECK: vpalignr $4 %C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> ret <8 x i32> %C } ; define <8 x i32> @test4(<8 x i32> %A, <8 x i32> %B) nounwind { ; CHECK-LABEL: test4: ; CHECK: vpalignr $8 %C = shufflevector <8 x i32> %A, <8 x i32> %B, <8 x i32> ret <8 x i32> %C } define <16 x i16> @test5(<16 x i16> %A, <16 x i16> %B) nounwind { ; CHECK-LABEL: test5: ; CHECK: vpalignr $6 %C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> ret <16 x i16> %C } define <16 x i16> @test6(<16 x i16> %A, <16 x i16> %B) nounwind { ; CHECK-LABEL: test6: ; CHECK: vpalignr $6 %C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> ret <16 x i16> %C } define <16 x i16> @test7(<16 x i16> %A, <16 x i16> %B) nounwind { ; CHECK-LABEL: test7: ; CHECK: vpalignr $6 %C = shufflevector <16 x i16> %A, <16 x i16> %B, <16 x i32> ret <16 x i16> %C } define <32 x i8> @test8(<32 x i8> %A, <32 x i8> %B) nounwind { ; CHECK-LABEL: test8: ; CHECK: vpalignr $5 %C = shufflevector <32 x i8> %A, <32 x i8> %B, <32 x i32> ret <32 x i8> %C }