diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp index 553263ee5165..9b58e00cbe08 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp @@ -776,6 +776,13 @@ struct ShuffleMask { size_t H = Mask.size()/2; return ShuffleMask(Mask.take_back(H)); } + + void print(raw_ostream &OS) const { + OS << "MinSrc:" << MinSrc << ", MaxSrc:" << MaxSrc << " {"; + for (int M : Mask) + OS << ' ' << M; + OS << " }"; + } }; } // namespace @@ -1042,19 +1049,36 @@ OpRef HvxSelector::packs(ShuffleMask SM, OpRef Va, OpRef Vb, int VecLen = SM.Mask.size(); MVT Ty = getSingleVT(MVT::i8); - if (SM.MaxSrc - SM.MinSrc < int(HwLen)) { - if (SM.MaxSrc < int(HwLen)) { - memcpy(NewMask.data(), SM.Mask.data(), sizeof(int)*VecLen); - return Va; + auto IsSubvector = [] (ShuffleMask M) { + assert(M.MinSrc >= 0 && M.MaxSrc >= 0); + for (int I = 0, E = M.Mask.size(); I != E; ++I) { + if (M.Mask[I] >= 0 && M.Mask[I]-I != M.MinSrc) + return false; } - if (SM.MinSrc >= int(HwLen)) { - for (int I = 0; I != VecLen; ++I) { - int M = SM.Mask[I]; - if (M != -1) - M -= HwLen; - NewMask[I] = M; + return true; + }; + + if (SM.MaxSrc - SM.MinSrc < int(HwLen)) { + if (SM.MinSrc == 0 || SM.MinSrc == int(HwLen) || !IsSubvector(SM)) { + if (SM.MaxSrc < int(HwLen)) { + memcpy(NewMask.data(), SM.Mask.data(), sizeof(int)*VecLen); + return Va; } - return Vb; + if (SM.MinSrc >= int(HwLen)) { + for (int I = 0; I != VecLen; ++I) { + int M = SM.Mask[I]; + if (M != -1) + M -= HwLen; + NewMask[I] = M; + } + return Vb; + } + } + if (SM.MaxSrc < int(HwLen)) { + Vb = Va; + } else if (SM.MinSrc > int(HwLen)) { + Va = Vb; + SM.MinSrc -= HwLen; } const SDLoc &dl(Results.InpNode); SDValue S = DAG.getTargetConstant(SM.MinSrc, dl, MVT::i32); diff --git a/llvm/test/CodeGen/Hexagon/autohvx/align2-128b.ll b/llvm/test/CodeGen/Hexagon/autohvx/align2-128b.ll new file mode 100644 index 000000000000..204fc2d6d70e --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/autohvx/align2-128b.ll @@ -0,0 +1,1706 @@ +; RUN: llc -march=hexagon < %s | FileCheck %s + +; CHECK-LABEL: test_00: +; CHECK-NOT: v0 = +; CHECK: jumpr r31 +define <128 x i8> @test_00(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_01: +; CHECK: v0 = valign(v0,v0,#1) +; CHECK: jumpr r31 +define <128 x i8> @test_01(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_02: +; CHECK: v0 = valign(v0,v0,#2) +; CHECK: jumpr r31 +define <128 x i8> @test_02(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_03: +; CHECK: v0 = valign(v0,v0,#3) +; CHECK: jumpr r31 +define <128 x i8> @test_03(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_04: +; CHECK: v0 = valign(v0,v0,#4) +; CHECK: jumpr r31 +define <128 x i8> @test_04(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_05: +; CHECK: v0 = valign(v0,v0,#5) +; CHECK: jumpr r31 +define <128 x i8> @test_05(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_06: +; CHECK: v0 = valign(v0,v0,#6) +; CHECK: jumpr r31 +define <128 x i8> @test_06(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_07: +; CHECK: v0 = valign(v0,v0,#7) +; CHECK: jumpr r31 +define <128 x i8> @test_07(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_08: +; CHECK: r[[REG08:[0-9]+]] = #8 +; CHECK: v0 = valign(v0,v0,r[[REG08]]) +; CHECK: jumpr r31 +define <128 x i8> @test_08(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_09: +; CHECK: r[[REG09:[0-9]+]] = #9 +; CHECK: v0 = valign(v0,v0,r[[REG09]]) +; CHECK: jumpr r31 +define <128 x i8> @test_09(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_10: +; CHECK: r[[REG10:[0-9]+]] = #10 +; CHECK: v0 = valign(v0,v0,r[[REG10]]) +; CHECK: jumpr r31 +define <128 x i8> @test_10(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_11: +; CHECK: r[[REG11:[0-9]+]] = #11 +; CHECK: v0 = valign(v0,v0,r[[REG11]]) +; CHECK: jumpr r31 +define <128 x i8> @test_11(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_12: +; CHECK: r[[REG12:[0-9]+]] = #12 +; CHECK: v0 = valign(v0,v0,r[[REG12]]) +; CHECK: jumpr r31 +define <128 x i8> @test_12(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_13: +; CHECK: r[[REG13:[0-9]+]] = #13 +; CHECK: v0 = valign(v0,v0,r[[REG13]]) +; CHECK: jumpr r31 +define <128 x i8> @test_13(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_14: +; CHECK: r[[REG14:[0-9]+]] = #14 +; CHECK: v0 = valign(v0,v0,r[[REG14]]) +; CHECK: jumpr r31 +define <128 x i8> @test_14(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_15: +; CHECK: r[[REG15:[0-9]+]] = #15 +; CHECK: v0 = valign(v0,v0,r[[REG15]]) +; CHECK: jumpr r31 +define <128 x i8> @test_15(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_16: +; CHECK: r[[REG16:[0-9]+]] = #16 +; CHECK: v0 = valign(v0,v0,r[[REG16]]) +; CHECK: jumpr r31 +define <128 x i8> @test_16(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_17: +; CHECK: r[[REG17:[0-9]+]] = #17 +; CHECK: v0 = valign(v0,v0,r[[REG17]]) +; CHECK: jumpr r31 +define <128 x i8> @test_17(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_18: +; CHECK: r[[REG18:[0-9]+]] = #18 +; CHECK: v0 = valign(v0,v0,r[[REG18]]) +; CHECK: jumpr r31 +define <128 x i8> @test_18(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_19: +; CHECK: r[[REG19:[0-9]+]] = #19 +; CHECK: v0 = valign(v0,v0,r[[REG19]]) +; CHECK: jumpr r31 +define <128 x i8> @test_19(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_20: +; CHECK: r[[REG20:[0-9]+]] = #20 +; CHECK: v0 = valign(v0,v0,r[[REG20]]) +; CHECK: jumpr r31 +define <128 x i8> @test_20(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_21: +; CHECK: r[[REG21:[0-9]+]] = #21 +; CHECK: v0 = valign(v0,v0,r[[REG21]]) +; CHECK: jumpr r31 +define <128 x i8> @test_21(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_22: +; CHECK: r[[REG22:[0-9]+]] = #22 +; CHECK: v0 = valign(v0,v0,r[[REG22]]) +; CHECK: jumpr r31 +define <128 x i8> @test_22(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_23: +; CHECK: r[[REG23:[0-9]+]] = #23 +; CHECK: v0 = valign(v0,v0,r[[REG23]]) +; CHECK: jumpr r31 +define <128 x i8> @test_23(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_24: +; CHECK: r[[REG24:[0-9]+]] = #24 +; CHECK: v0 = valign(v0,v0,r[[REG24]]) +; CHECK: jumpr r31 +define <128 x i8> @test_24(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_25: +; CHECK: r[[REG25:[0-9]+]] = #25 +; CHECK: v0 = valign(v0,v0,r[[REG25]]) +; CHECK: jumpr r31 +define <128 x i8> @test_25(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_26: +; CHECK: r[[REG26:[0-9]+]] = #26 +; CHECK: v0 = valign(v0,v0,r[[REG26]]) +; CHECK: jumpr r31 +define <128 x i8> @test_26(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_27: +; CHECK: r[[REG27:[0-9]+]] = #27 +; CHECK: v0 = valign(v0,v0,r[[REG27]]) +; CHECK: jumpr r31 +define <128 x i8> @test_27(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_28: +; CHECK: r[[REG28:[0-9]+]] = #28 +; CHECK: v0 = valign(v0,v0,r[[REG28]]) +; CHECK: jumpr r31 +define <128 x i8> @test_28(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_29: +; CHECK: r[[REG29:[0-9]+]] = #29 +; CHECK: v0 = valign(v0,v0,r[[REG29]]) +; CHECK: jumpr r31 +define <128 x i8> @test_29(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_30: +; CHECK: r[[REG30:[0-9]+]] = #30 +; CHECK: v0 = valign(v0,v0,r[[REG30]]) +; CHECK: jumpr r31 +define <128 x i8> @test_30(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_31: +; CHECK: r[[REG31:[0-9]+]] = #31 +; CHECK: v0 = valign(v0,v0,r[[REG31]]) +; CHECK: jumpr r31 +define <128 x i8> @test_31(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_32: +; CHECK: r[[REG32:[0-9]+]] = #32 +; CHECK: v0 = valign(v0,v0,r[[REG32]]) +; CHECK: jumpr r31 +define <128 x i8> @test_32(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_33: +; CHECK: r[[REG33:[0-9]+]] = #33 +; CHECK: v0 = valign(v0,v0,r[[REG33]]) +; CHECK: jumpr r31 +define <128 x i8> @test_33(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_34: +; CHECK: r[[REG34:[0-9]+]] = #34 +; CHECK: v0 = valign(v0,v0,r[[REG34]]) +; CHECK: jumpr r31 +define <128 x i8> @test_34(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_35: +; CHECK: r[[REG35:[0-9]+]] = #35 +; CHECK: v0 = valign(v0,v0,r[[REG35]]) +; CHECK: jumpr r31 +define <128 x i8> @test_35(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_36: +; CHECK: r[[REG36:[0-9]+]] = #36 +; CHECK: v0 = valign(v0,v0,r[[REG36]]) +; CHECK: jumpr r31 +define <128 x i8> @test_36(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_37: +; CHECK: r[[REG37:[0-9]+]] = #37 +; CHECK: v0 = valign(v0,v0,r[[REG37]]) +; CHECK: jumpr r31 +define <128 x i8> @test_37(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_38: +; CHECK: r[[REG38:[0-9]+]] = #38 +; CHECK: v0 = valign(v0,v0,r[[REG38]]) +; CHECK: jumpr r31 +define <128 x i8> @test_38(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_39: +; CHECK: r[[REG39:[0-9]+]] = #39 +; CHECK: v0 = valign(v0,v0,r[[REG39]]) +; CHECK: jumpr r31 +define <128 x i8> @test_39(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_40: +; CHECK: r[[REG40:[0-9]+]] = #40 +; CHECK: v0 = valign(v0,v0,r[[REG40]]) +; CHECK: jumpr r31 +define <128 x i8> @test_40(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_41: +; CHECK: r[[REG41:[0-9]+]] = #41 +; CHECK: v0 = valign(v0,v0,r[[REG41]]) +; CHECK: jumpr r31 +define <128 x i8> @test_41(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_42: +; CHECK: r[[REG42:[0-9]+]] = #42 +; CHECK: v0 = valign(v0,v0,r[[REG42]]) +; CHECK: jumpr r31 +define <128 x i8> @test_42(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_43: +; CHECK: r[[REG43:[0-9]+]] = #43 +; CHECK: v0 = valign(v0,v0,r[[REG43]]) +; CHECK: jumpr r31 +define <128 x i8> @test_43(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_44: +; CHECK: r[[REG44:[0-9]+]] = #44 +; CHECK: v0 = valign(v0,v0,r[[REG44]]) +; CHECK: jumpr r31 +define <128 x i8> @test_44(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_45: +; CHECK: r[[REG45:[0-9]+]] = #45 +; CHECK: v0 = valign(v0,v0,r[[REG45]]) +; CHECK: jumpr r31 +define <128 x i8> @test_45(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_46: +; CHECK: r[[REG46:[0-9]+]] = #46 +; CHECK: v0 = valign(v0,v0,r[[REG46]]) +; CHECK: jumpr r31 +define <128 x i8> @test_46(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_47: +; CHECK: r[[REG47:[0-9]+]] = #47 +; CHECK: v0 = valign(v0,v0,r[[REG47]]) +; CHECK: jumpr r31 +define <128 x i8> @test_47(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_48: +; CHECK: r[[REG48:[0-9]+]] = #48 +; CHECK: v0 = valign(v0,v0,r[[REG48]]) +; CHECK: jumpr r31 +define <128 x i8> @test_48(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_49: +; CHECK: r[[REG49:[0-9]+]] = #49 +; CHECK: v0 = valign(v0,v0,r[[REG49]]) +; CHECK: jumpr r31 +define <128 x i8> @test_49(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_50: +; CHECK: r[[REG50:[0-9]+]] = #50 +; CHECK: v0 = valign(v0,v0,r[[REG50]]) +; CHECK: jumpr r31 +define <128 x i8> @test_50(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_51: +; CHECK: r[[REG51:[0-9]+]] = #51 +; CHECK: v0 = valign(v0,v0,r[[REG51]]) +; CHECK: jumpr r31 +define <128 x i8> @test_51(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_52: +; CHECK: r[[REG52:[0-9]+]] = #52 +; CHECK: v0 = valign(v0,v0,r[[REG52]]) +; CHECK: jumpr r31 +define <128 x i8> @test_52(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_53: +; CHECK: r[[REG53:[0-9]+]] = #53 +; CHECK: v0 = valign(v0,v0,r[[REG53]]) +; CHECK: jumpr r31 +define <128 x i8> @test_53(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_54: +; CHECK: r[[REG54:[0-9]+]] = #54 +; CHECK: v0 = valign(v0,v0,r[[REG54]]) +; CHECK: jumpr r31 +define <128 x i8> @test_54(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_55: +; CHECK: r[[REG55:[0-9]+]] = #55 +; CHECK: v0 = valign(v0,v0,r[[REG55]]) +; CHECK: jumpr r31 +define <128 x i8> @test_55(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_56: +; CHECK: r[[REG56:[0-9]+]] = #56 +; CHECK: v0 = valign(v0,v0,r[[REG56]]) +; CHECK: jumpr r31 +define <128 x i8> @test_56(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_57: +; CHECK: r[[REG57:[0-9]+]] = #57 +; CHECK: v0 = valign(v0,v0,r[[REG57]]) +; CHECK: jumpr r31 +define <128 x i8> @test_57(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_58: +; CHECK: r[[REG58:[0-9]+]] = #58 +; CHECK: v0 = valign(v0,v0,r[[REG58]]) +; CHECK: jumpr r31 +define <128 x i8> @test_58(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_59: +; CHECK: r[[REG59:[0-9]+]] = #59 +; CHECK: v0 = valign(v0,v0,r[[REG59]]) +; CHECK: jumpr r31 +define <128 x i8> @test_59(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_60: +; CHECK: r[[REG60:[0-9]+]] = #60 +; CHECK: v0 = valign(v0,v0,r[[REG60]]) +; CHECK: jumpr r31 +define <128 x i8> @test_60(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_61: +; CHECK: r[[REG61:[0-9]+]] = #61 +; CHECK: v0 = valign(v0,v0,r[[REG61]]) +; CHECK: jumpr r31 +define <128 x i8> @test_61(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_62: +; CHECK: r[[REG62:[0-9]+]] = #62 +; CHECK: v0 = valign(v0,v0,r[[REG62]]) +; CHECK: jumpr r31 +define <128 x i8> @test_62(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_63: +; CHECK: r[[REG63:[0-9]+]] = #63 +; CHECK: v0 = valign(v0,v0,r[[REG63]]) +; CHECK: jumpr r31 +define <128 x i8> @test_63(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_64: +; CHECK: r[[REG64:[0-9]+]] = #64 +; CHECK: v0 = valign(v1,v0,r[[REG64]]) +; CHECK: jumpr r31 +define <128 x i8> @test_64(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_65: +; CHECK: r[[REG65:[0-9]+]] = #65 +; CHECK: v0 = valign(v1,v0,r[[REG65]]) +; CHECK: jumpr r31 +define <128 x i8> @test_65(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_66: +; CHECK: r[[REG66:[0-9]+]] = #66 +; CHECK: v0 = valign(v1,v0,r[[REG66]]) +; CHECK: jumpr r31 +define <128 x i8> @test_66(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_67: +; CHECK: r[[REG67:[0-9]+]] = #67 +; CHECK: v0 = valign(v1,v0,r[[REG67]]) +; CHECK: jumpr r31 +define <128 x i8> @test_67(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_68: +; CHECK: r[[REG68:[0-9]+]] = #68 +; CHECK: v0 = valign(v1,v0,r[[REG68]]) +; CHECK: jumpr r31 +define <128 x i8> @test_68(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_69: +; CHECK: r[[REG69:[0-9]+]] = #69 +; CHECK: v0 = valign(v1,v0,r[[REG69]]) +; CHECK: jumpr r31 +define <128 x i8> @test_69(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_70: +; CHECK: r[[REG70:[0-9]+]] = #70 +; CHECK: v0 = valign(v1,v0,r[[REG70]]) +; CHECK: jumpr r31 +define <128 x i8> @test_70(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_71: +; CHECK: r[[REG71:[0-9]+]] = #71 +; CHECK: v0 = valign(v1,v0,r[[REG71]]) +; CHECK: jumpr r31 +define <128 x i8> @test_71(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_72: +; CHECK: r[[REG72:[0-9]+]] = #72 +; CHECK: v0 = valign(v1,v0,r[[REG72]]) +; CHECK: jumpr r31 +define <128 x i8> @test_72(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_73: +; CHECK: r[[REG73:[0-9]+]] = #73 +; CHECK: v0 = valign(v1,v0,r[[REG73]]) +; CHECK: jumpr r31 +define <128 x i8> @test_73(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_74: +; CHECK: r[[REG74:[0-9]+]] = #74 +; CHECK: v0 = valign(v1,v0,r[[REG74]]) +; CHECK: jumpr r31 +define <128 x i8> @test_74(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_75: +; CHECK: r[[REG75:[0-9]+]] = #75 +; CHECK: v0 = valign(v1,v0,r[[REG75]]) +; CHECK: jumpr r31 +define <128 x i8> @test_75(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_76: +; CHECK: r[[REG76:[0-9]+]] = #76 +; CHECK: v0 = valign(v1,v0,r[[REG76]]) +; CHECK: jumpr r31 +define <128 x i8> @test_76(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_77: +; CHECK: r[[REG77:[0-9]+]] = #77 +; CHECK: v0 = valign(v1,v0,r[[REG77]]) +; CHECK: jumpr r31 +define <128 x i8> @test_77(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_78: +; CHECK: r[[REG78:[0-9]+]] = #78 +; CHECK: v0 = valign(v1,v0,r[[REG78]]) +; CHECK: jumpr r31 +define <128 x i8> @test_78(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_79: +; CHECK: r[[REG79:[0-9]+]] = #79 +; CHECK: v0 = valign(v1,v0,r[[REG79]]) +; CHECK: jumpr r31 +define <128 x i8> @test_79(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_80: +; CHECK: r[[REG80:[0-9]+]] = #80 +; CHECK: v0 = valign(v1,v0,r[[REG80]]) +; CHECK: jumpr r31 +define <128 x i8> @test_80(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_81: +; CHECK: r[[REG81:[0-9]+]] = #81 +; CHECK: v0 = valign(v1,v0,r[[REG81]]) +; CHECK: jumpr r31 +define <128 x i8> @test_81(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_82: +; CHECK: r[[REG82:[0-9]+]] = #82 +; CHECK: v0 = valign(v1,v0,r[[REG82]]) +; CHECK: jumpr r31 +define <128 x i8> @test_82(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_83: +; CHECK: r[[REG83:[0-9]+]] = #83 +; CHECK: v0 = valign(v1,v0,r[[REG83]]) +; CHECK: jumpr r31 +define <128 x i8> @test_83(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_84: +; CHECK: r[[REG84:[0-9]+]] = #84 +; CHECK: v0 = valign(v1,v0,r[[REG84]]) +; CHECK: jumpr r31 +define <128 x i8> @test_84(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_85: +; CHECK: r[[REG85:[0-9]+]] = #85 +; CHECK: v0 = valign(v1,v0,r[[REG85]]) +; CHECK: jumpr r31 +define <128 x i8> @test_85(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_86: +; CHECK: r[[REG86:[0-9]+]] = #86 +; CHECK: v0 = valign(v1,v0,r[[REG86]]) +; CHECK: jumpr r31 +define <128 x i8> @test_86(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_87: +; CHECK: r[[REG87:[0-9]+]] = #87 +; CHECK: v0 = valign(v1,v0,r[[REG87]]) +; CHECK: jumpr r31 +define <128 x i8> @test_87(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_88: +; CHECK: r[[REG88:[0-9]+]] = #88 +; CHECK: v0 = valign(v1,v0,r[[REG88]]) +; CHECK: jumpr r31 +define <128 x i8> @test_88(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_89: +; CHECK: r[[REG89:[0-9]+]] = #89 +; CHECK: v0 = valign(v1,v0,r[[REG89]]) +; CHECK: jumpr r31 +define <128 x i8> @test_89(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_90: +; CHECK: r[[REG90:[0-9]+]] = #90 +; CHECK: v0 = valign(v1,v0,r[[REG90]]) +; CHECK: jumpr r31 +define <128 x i8> @test_90(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_91: +; CHECK: r[[REG91:[0-9]+]] = #91 +; CHECK: v0 = valign(v1,v0,r[[REG91]]) +; CHECK: jumpr r31 +define <128 x i8> @test_91(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_92: +; CHECK: r[[REG92:[0-9]+]] = #92 +; CHECK: v0 = valign(v1,v0,r[[REG92]]) +; CHECK: jumpr r31 +define <128 x i8> @test_92(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_93: +; CHECK: r[[REG93:[0-9]+]] = #93 +; CHECK: v0 = valign(v1,v0,r[[REG93]]) +; CHECK: jumpr r31 +define <128 x i8> @test_93(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_94: +; CHECK: r[[REG94:[0-9]+]] = #94 +; CHECK: v0 = valign(v1,v0,r[[REG94]]) +; CHECK: jumpr r31 +define <128 x i8> @test_94(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_95: +; CHECK: r[[REG95:[0-9]+]] = #95 +; CHECK: v0 = valign(v1,v0,r[[REG95]]) +; CHECK: jumpr r31 +define <128 x i8> @test_95(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_96: +; CHECK: r[[REG96:[0-9]+]] = #96 +; CHECK: v0 = valign(v1,v0,r[[REG96]]) +; CHECK: jumpr r31 +define <128 x i8> @test_96(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_97: +; CHECK: r[[REG97:[0-9]+]] = #97 +; CHECK: v0 = valign(v1,v0,r[[REG97]]) +; CHECK: jumpr r31 +define <128 x i8> @test_97(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_98: +; CHECK: r[[REG98:[0-9]+]] = #98 +; CHECK: v0 = valign(v1,v0,r[[REG98]]) +; CHECK: jumpr r31 +define <128 x i8> @test_98(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_99: +; CHECK: r[[REG99:[0-9]+]] = #99 +; CHECK: v0 = valign(v1,v0,r[[REG99]]) +; CHECK: jumpr r31 +define <128 x i8> @test_99(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_100: +; CHECK: r[[REG100:[0-9]+]] = #100 +; CHECK: v0 = valign(v1,v0,r[[REG100]]) +; CHECK: jumpr r31 +define <128 x i8> @test_100(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_101: +; CHECK: r[[REG101:[0-9]+]] = #101 +; CHECK: v0 = valign(v1,v0,r[[REG101]]) +; CHECK: jumpr r31 +define <128 x i8> @test_101(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_102: +; CHECK: r[[REG102:[0-9]+]] = #102 +; CHECK: v0 = valign(v1,v0,r[[REG102]]) +; CHECK: jumpr r31 +define <128 x i8> @test_102(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_103: +; CHECK: r[[REG103:[0-9]+]] = #103 +; CHECK: v0 = valign(v1,v0,r[[REG103]]) +; CHECK: jumpr r31 +define <128 x i8> @test_103(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_104: +; CHECK: r[[REG104:[0-9]+]] = #104 +; CHECK: v0 = valign(v1,v0,r[[REG104]]) +; CHECK: jumpr r31 +define <128 x i8> @test_104(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_105: +; CHECK: r[[REG105:[0-9]+]] = #105 +; CHECK: v0 = valign(v1,v0,r[[REG105]]) +; CHECK: jumpr r31 +define <128 x i8> @test_105(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_106: +; CHECK: r[[REG106:[0-9]+]] = #106 +; CHECK: v0 = valign(v1,v0,r[[REG106]]) +; CHECK: jumpr r31 +define <128 x i8> @test_106(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_107: +; CHECK: r[[REG107:[0-9]+]] = #107 +; CHECK: v0 = valign(v1,v0,r[[REG107]]) +; CHECK: jumpr r31 +define <128 x i8> @test_107(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_108: +; CHECK: r[[REG108:[0-9]+]] = #108 +; CHECK: v0 = valign(v1,v0,r[[REG108]]) +; CHECK: jumpr r31 +define <128 x i8> @test_108(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_109: +; CHECK: r[[REG109:[0-9]+]] = #109 +; CHECK: v0 = valign(v1,v0,r[[REG109]]) +; CHECK: jumpr r31 +define <128 x i8> @test_109(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_110: +; CHECK: r[[REG110:[0-9]+]] = #110 +; CHECK: v0 = valign(v1,v0,r[[REG110]]) +; CHECK: jumpr r31 +define <128 x i8> @test_110(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_111: +; CHECK: r[[REG111:[0-9]+]] = #111 +; CHECK: v0 = valign(v1,v0,r[[REG111]]) +; CHECK: jumpr r31 +define <128 x i8> @test_111(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_112: +; CHECK: r[[REG112:[0-9]+]] = #112 +; CHECK: v0 = valign(v1,v0,r[[REG112]]) +; CHECK: jumpr r31 +define <128 x i8> @test_112(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_113: +; CHECK: r[[REG113:[0-9]+]] = #113 +; CHECK: v0 = valign(v1,v0,r[[REG113]]) +; CHECK: jumpr r31 +define <128 x i8> @test_113(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_114: +; CHECK: r[[REG114:[0-9]+]] = #114 +; CHECK: v0 = valign(v1,v0,r[[REG114]]) +; CHECK: jumpr r31 +define <128 x i8> @test_114(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_115: +; CHECK: r[[REG115:[0-9]+]] = #115 +; CHECK: v0 = valign(v1,v0,r[[REG115]]) +; CHECK: jumpr r31 +define <128 x i8> @test_115(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_116: +; CHECK: r[[REG116:[0-9]+]] = #116 +; CHECK: v0 = valign(v1,v0,r[[REG116]]) +; CHECK: jumpr r31 +define <128 x i8> @test_116(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_117: +; CHECK: r[[REG117:[0-9]+]] = #117 +; CHECK: v0 = valign(v1,v0,r[[REG117]]) +; CHECK: jumpr r31 +define <128 x i8> @test_117(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_118: +; CHECK: r[[REG118:[0-9]+]] = #118 +; CHECK: v0 = valign(v1,v0,r[[REG118]]) +; CHECK: jumpr r31 +define <128 x i8> @test_118(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_119: +; CHECK: r[[REG119:[0-9]+]] = #119 +; CHECK: v0 = valign(v1,v0,r[[REG119]]) +; CHECK: jumpr r31 +define <128 x i8> @test_119(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_120: +; CHECK: r[[REG120:[0-9]+]] = #120 +; CHECK: v0 = valign(v1,v0,r[[REG120]]) +; CHECK: jumpr r31 +define <128 x i8> @test_120(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_121: +; CHECK: r[[REG121:[0-9]+]] = #121 +; CHECK: v0 = valign(v1,v0,r[[REG121]]) +; CHECK: jumpr r31 +define <128 x i8> @test_121(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_122: +; CHECK: r[[REG122:[0-9]+]] = #122 +; CHECK: v0 = valign(v1,v0,r[[REG122]]) +; CHECK: jumpr r31 +define <128 x i8> @test_122(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_123: +; CHECK: r[[REG123:[0-9]+]] = #123 +; CHECK: v0 = valign(v1,v0,r[[REG123]]) +; CHECK: jumpr r31 +define <128 x i8> @test_123(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_124: +; CHECK: r[[REG124:[0-9]+]] = #124 +; CHECK: v0 = valign(v1,v0,r[[REG124]]) +; CHECK: jumpr r31 +define <128 x i8> @test_124(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_125: +; CHECK: r[[REG125:[0-9]+]] = #125 +; CHECK: v0 = valign(v1,v0,r[[REG125]]) +; CHECK: jumpr r31 +define <128 x i8> @test_125(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_126: +; CHECK: r[[REG126:[0-9]+]] = #126 +; CHECK: v0 = valign(v1,v0,r[[REG126]]) +; CHECK: jumpr r31 +define <128 x i8> @test_126(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_127: +; CHECK: r[[REG127:[0-9]+]] = #127 +; CHECK: v0 = valign(v1,v0,r[[REG127]]) +; CHECK: jumpr r31 +define <128 x i8> @test_127(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_128: +; CHECK: v0 = v1 +; CHECK: jumpr r31 +define <128 x i8> @test_128(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_129: +; CHECK: v0 = valign(v1,v1,#1) +; CHECK: jumpr r31 +define <128 x i8> @test_129(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_130: +; CHECK: v0 = valign(v1,v1,#2) +; CHECK: jumpr r31 +define <128 x i8> @test_130(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_131: +; CHECK: v0 = valign(v1,v1,#3) +; CHECK: jumpr r31 +define <128 x i8> @test_131(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_132: +; CHECK: v0 = valign(v1,v1,#4) +; CHECK: jumpr r31 +define <128 x i8> @test_132(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_133: +; CHECK: v0 = valign(v1,v1,#5) +; CHECK: jumpr r31 +define <128 x i8> @test_133(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_134: +; CHECK: v0 = valign(v1,v1,#6) +; CHECK: jumpr r31 +define <128 x i8> @test_134(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_135: +; CHECK: v0 = valign(v1,v1,#7) +; CHECK: jumpr r31 +define <128 x i8> @test_135(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_136: +; CHECK: r[[REG136:[0-9]+]] = #8 +; CHECK: v0 = valign(v1,v1,r[[REG136]]) +; CHECK: jumpr r31 +define <128 x i8> @test_136(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_137: +; CHECK: r[[REG137:[0-9]+]] = #9 +; CHECK: v0 = valign(v1,v1,r[[REG137]]) +; CHECK: jumpr r31 +define <128 x i8> @test_137(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_138: +; CHECK: r[[REG138:[0-9]+]] = #10 +; CHECK: v0 = valign(v1,v1,r[[REG138]]) +; CHECK: jumpr r31 +define <128 x i8> @test_138(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_139: +; CHECK: r[[REG139:[0-9]+]] = #11 +; CHECK: v0 = valign(v1,v1,r[[REG139]]) +; CHECK: jumpr r31 +define <128 x i8> @test_139(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_140: +; CHECK: r[[REG140:[0-9]+]] = #12 +; CHECK: v0 = valign(v1,v1,r[[REG140]]) +; CHECK: jumpr r31 +define <128 x i8> @test_140(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_141: +; CHECK: r[[REG141:[0-9]+]] = #13 +; CHECK: v0 = valign(v1,v1,r[[REG141]]) +; CHECK: jumpr r31 +define <128 x i8> @test_141(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_142: +; CHECK: r[[REG142:[0-9]+]] = #14 +; CHECK: v0 = valign(v1,v1,r[[REG142]]) +; CHECK: jumpr r31 +define <128 x i8> @test_142(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_143: +; CHECK: r[[REG143:[0-9]+]] = #15 +; CHECK: v0 = valign(v1,v1,r[[REG143]]) +; CHECK: jumpr r31 +define <128 x i8> @test_143(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_144: +; CHECK: r[[REG144:[0-9]+]] = #16 +; CHECK: v0 = valign(v1,v1,r[[REG144]]) +; CHECK: jumpr r31 +define <128 x i8> @test_144(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_145: +; CHECK: r[[REG145:[0-9]+]] = #17 +; CHECK: v0 = valign(v1,v1,r[[REG145]]) +; CHECK: jumpr r31 +define <128 x i8> @test_145(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_146: +; CHECK: r[[REG146:[0-9]+]] = #18 +; CHECK: v0 = valign(v1,v1,r[[REG146]]) +; CHECK: jumpr r31 +define <128 x i8> @test_146(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_147: +; CHECK: r[[REG147:[0-9]+]] = #19 +; CHECK: v0 = valign(v1,v1,r[[REG147]]) +; CHECK: jumpr r31 +define <128 x i8> @test_147(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_148: +; CHECK: r[[REG148:[0-9]+]] = #20 +; CHECK: v0 = valign(v1,v1,r[[REG148]]) +; CHECK: jumpr r31 +define <128 x i8> @test_148(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_149: +; CHECK: r[[REG149:[0-9]+]] = #21 +; CHECK: v0 = valign(v1,v1,r[[REG149]]) +; CHECK: jumpr r31 +define <128 x i8> @test_149(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_150: +; CHECK: r[[REG150:[0-9]+]] = #22 +; CHECK: v0 = valign(v1,v1,r[[REG150]]) +; CHECK: jumpr r31 +define <128 x i8> @test_150(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_151: +; CHECK: r[[REG151:[0-9]+]] = #23 +; CHECK: v0 = valign(v1,v1,r[[REG151]]) +; CHECK: jumpr r31 +define <128 x i8> @test_151(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_152: +; CHECK: r[[REG152:[0-9]+]] = #24 +; CHECK: v0 = valign(v1,v1,r[[REG152]]) +; CHECK: jumpr r31 +define <128 x i8> @test_152(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_153: +; CHECK: r[[REG153:[0-9]+]] = #25 +; CHECK: v0 = valign(v1,v1,r[[REG153]]) +; CHECK: jumpr r31 +define <128 x i8> @test_153(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_154: +; CHECK: r[[REG154:[0-9]+]] = #26 +; CHECK: v0 = valign(v1,v1,r[[REG154]]) +; CHECK: jumpr r31 +define <128 x i8> @test_154(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_155: +; CHECK: r[[REG155:[0-9]+]] = #27 +; CHECK: v0 = valign(v1,v1,r[[REG155]]) +; CHECK: jumpr r31 +define <128 x i8> @test_155(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_156: +; CHECK: r[[REG156:[0-9]+]] = #28 +; CHECK: v0 = valign(v1,v1,r[[REG156]]) +; CHECK: jumpr r31 +define <128 x i8> @test_156(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_157: +; CHECK: r[[REG157:[0-9]+]] = #29 +; CHECK: v0 = valign(v1,v1,r[[REG157]]) +; CHECK: jumpr r31 +define <128 x i8> @test_157(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_158: +; CHECK: r[[REG158:[0-9]+]] = #30 +; CHECK: v0 = valign(v1,v1,r[[REG158]]) +; CHECK: jumpr r31 +define <128 x i8> @test_158(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_159: +; CHECK: r[[REG159:[0-9]+]] = #31 +; CHECK: v0 = valign(v1,v1,r[[REG159]]) +; CHECK: jumpr r31 +define <128 x i8> @test_159(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_160: +; CHECK: r[[REG160:[0-9]+]] = #32 +; CHECK: v0 = valign(v1,v1,r[[REG160]]) +; CHECK: jumpr r31 +define <128 x i8> @test_160(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_161: +; CHECK: r[[REG161:[0-9]+]] = #33 +; CHECK: v0 = valign(v1,v1,r[[REG161]]) +; CHECK: jumpr r31 +define <128 x i8> @test_161(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_162: +; CHECK: r[[REG162:[0-9]+]] = #34 +; CHECK: v0 = valign(v1,v1,r[[REG162]]) +; CHECK: jumpr r31 +define <128 x i8> @test_162(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_163: +; CHECK: r[[REG163:[0-9]+]] = #35 +; CHECK: v0 = valign(v1,v1,r[[REG163]]) +; CHECK: jumpr r31 +define <128 x i8> @test_163(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_164: +; CHECK: r[[REG164:[0-9]+]] = #36 +; CHECK: v0 = valign(v1,v1,r[[REG164]]) +; CHECK: jumpr r31 +define <128 x i8> @test_164(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_165: +; CHECK: r[[REG165:[0-9]+]] = #37 +; CHECK: v0 = valign(v1,v1,r[[REG165]]) +; CHECK: jumpr r31 +define <128 x i8> @test_165(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_166: +; CHECK: r[[REG166:[0-9]+]] = #38 +; CHECK: v0 = valign(v1,v1,r[[REG166]]) +; CHECK: jumpr r31 +define <128 x i8> @test_166(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_167: +; CHECK: r[[REG167:[0-9]+]] = #39 +; CHECK: v0 = valign(v1,v1,r[[REG167]]) +; CHECK: jumpr r31 +define <128 x i8> @test_167(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_168: +; CHECK: r[[REG168:[0-9]+]] = #40 +; CHECK: v0 = valign(v1,v1,r[[REG168]]) +; CHECK: jumpr r31 +define <128 x i8> @test_168(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_169: +; CHECK: r[[REG169:[0-9]+]] = #41 +; CHECK: v0 = valign(v1,v1,r[[REG169]]) +; CHECK: jumpr r31 +define <128 x i8> @test_169(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_170: +; CHECK: r[[REG170:[0-9]+]] = #42 +; CHECK: v0 = valign(v1,v1,r[[REG170]]) +; CHECK: jumpr r31 +define <128 x i8> @test_170(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_171: +; CHECK: r[[REG171:[0-9]+]] = #43 +; CHECK: v0 = valign(v1,v1,r[[REG171]]) +; CHECK: jumpr r31 +define <128 x i8> @test_171(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_172: +; CHECK: r[[REG172:[0-9]+]] = #44 +; CHECK: v0 = valign(v1,v1,r[[REG172]]) +; CHECK: jumpr r31 +define <128 x i8> @test_172(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_173: +; CHECK: r[[REG173:[0-9]+]] = #45 +; CHECK: v0 = valign(v1,v1,r[[REG173]]) +; CHECK: jumpr r31 +define <128 x i8> @test_173(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_174: +; CHECK: r[[REG174:[0-9]+]] = #46 +; CHECK: v0 = valign(v1,v1,r[[REG174]]) +; CHECK: jumpr r31 +define <128 x i8> @test_174(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_175: +; CHECK: r[[REG175:[0-9]+]] = #47 +; CHECK: v0 = valign(v1,v1,r[[REG175]]) +; CHECK: jumpr r31 +define <128 x i8> @test_175(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_176: +; CHECK: r[[REG176:[0-9]+]] = #48 +; CHECK: v0 = valign(v1,v1,r[[REG176]]) +; CHECK: jumpr r31 +define <128 x i8> @test_176(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_177: +; CHECK: r[[REG177:[0-9]+]] = #49 +; CHECK: v0 = valign(v1,v1,r[[REG177]]) +; CHECK: jumpr r31 +define <128 x i8> @test_177(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_178: +; CHECK: r[[REG178:[0-9]+]] = #50 +; CHECK: v0 = valign(v1,v1,r[[REG178]]) +; CHECK: jumpr r31 +define <128 x i8> @test_178(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_179: +; CHECK: r[[REG179:[0-9]+]] = #51 +; CHECK: v0 = valign(v1,v1,r[[REG179]]) +; CHECK: jumpr r31 +define <128 x i8> @test_179(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_180: +; CHECK: r[[REG180:[0-9]+]] = #52 +; CHECK: v0 = valign(v1,v1,r[[REG180]]) +; CHECK: jumpr r31 +define <128 x i8> @test_180(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_181: +; CHECK: r[[REG181:[0-9]+]] = #53 +; CHECK: v0 = valign(v1,v1,r[[REG181]]) +; CHECK: jumpr r31 +define <128 x i8> @test_181(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_182: +; CHECK: r[[REG182:[0-9]+]] = #54 +; CHECK: v0 = valign(v1,v1,r[[REG182]]) +; CHECK: jumpr r31 +define <128 x i8> @test_182(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_183: +; CHECK: r[[REG183:[0-9]+]] = #55 +; CHECK: v0 = valign(v1,v1,r[[REG183]]) +; CHECK: jumpr r31 +define <128 x i8> @test_183(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_184: +; CHECK: r[[REG184:[0-9]+]] = #56 +; CHECK: v0 = valign(v1,v1,r[[REG184]]) +; CHECK: jumpr r31 +define <128 x i8> @test_184(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_185: +; CHECK: r[[REG185:[0-9]+]] = #57 +; CHECK: v0 = valign(v1,v1,r[[REG185]]) +; CHECK: jumpr r31 +define <128 x i8> @test_185(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_186: +; CHECK: r[[REG186:[0-9]+]] = #58 +; CHECK: v0 = valign(v1,v1,r[[REG186]]) +; CHECK: jumpr r31 +define <128 x i8> @test_186(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_187: +; CHECK: r[[REG187:[0-9]+]] = #59 +; CHECK: v0 = valign(v1,v1,r[[REG187]]) +; CHECK: jumpr r31 +define <128 x i8> @test_187(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_188: +; CHECK: r[[REG188:[0-9]+]] = #60 +; CHECK: v0 = valign(v1,v1,r[[REG188]]) +; CHECK: jumpr r31 +define <128 x i8> @test_188(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_189: +; CHECK: r[[REG189:[0-9]+]] = #61 +; CHECK: v0 = valign(v1,v1,r[[REG189]]) +; CHECK: jumpr r31 +define <128 x i8> @test_189(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +; CHECK-LABEL: test_190: +; CHECK: r[[REG190:[0-9]+]] = #62 +; CHECK: v0 = valign(v1,v1,r[[REG190]]) +; CHECK: jumpr r31 +define <128 x i8> @test_190(<128 x i8> %v0, <128 x i8> %v1) #0 { + %t0 = shufflevector <128 x i8> %v0, <128 x i8> %v1, <128 x i32> + ret <128 x i8> %t0 +} + +attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" } diff --git a/llvm/test/CodeGen/Hexagon/autohvx/align2-64b.ll b/llvm/test/CodeGen/Hexagon/autohvx/align2-64b.ll new file mode 100644 index 000000000000..91b54cb08c21 --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/autohvx/align2-64b.ll @@ -0,0 +1,842 @@ +; RUN: llc -march=hexagon < %s | FileCheck %s + +; CHECK-LABEL: test_00: +; CHECK-NOT: v0 = +; CHECK: jumpr r31 +define <64 x i8> @test_00(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_01: +; CHECK: v0 = valign(v0,v0,#1) +; CHECK: jumpr r31 +define <64 x i8> @test_01(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_02: +; CHECK: v0 = valign(v0,v0,#2) +; CHECK: jumpr r31 +define <64 x i8> @test_02(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_03: +; CHECK: v0 = valign(v0,v0,#3) +; CHECK: jumpr r31 +define <64 x i8> @test_03(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_04: +; CHECK: v0 = valign(v0,v0,#4) +; CHECK: jumpr r31 +define <64 x i8> @test_04(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_05: +; CHECK: v0 = valign(v0,v0,#5) +; CHECK: jumpr r31 +define <64 x i8> @test_05(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_06: +; CHECK: v0 = valign(v0,v0,#6) +; CHECK: jumpr r31 +define <64 x i8> @test_06(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_07: +; CHECK: v0 = valign(v0,v0,#7) +; CHECK: jumpr r31 +define <64 x i8> @test_07(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_08: +; CHECK: r[[REG08:[0-9]+]] = #8 +; CHECK: v0 = valign(v0,v0,r[[REG08]]) +; CHECK: jumpr r31 +define <64 x i8> @test_08(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_09: +; CHECK: r[[REG09:[0-9]+]] = #9 +; CHECK: v0 = valign(v0,v0,r[[REG09]]) +; CHECK: jumpr r31 +define <64 x i8> @test_09(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_10: +; CHECK: r[[REG10:[0-9]+]] = #10 +; CHECK: v0 = valign(v0,v0,r[[REG10]]) +; CHECK: jumpr r31 +define <64 x i8> @test_10(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_11: +; CHECK: r[[REG11:[0-9]+]] = #11 +; CHECK: v0 = valign(v0,v0,r[[REG11]]) +; CHECK: jumpr r31 +define <64 x i8> @test_11(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_12: +; CHECK: r[[REG12:[0-9]+]] = #12 +; CHECK: v0 = valign(v0,v0,r[[REG12]]) +; CHECK: jumpr r31 +define <64 x i8> @test_12(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_13: +; CHECK: r[[REG13:[0-9]+]] = #13 +; CHECK: v0 = valign(v0,v0,r[[REG13]]) +; CHECK: jumpr r31 +define <64 x i8> @test_13(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_14: +; CHECK: r[[REG14:[0-9]+]] = #14 +; CHECK: v0 = valign(v0,v0,r[[REG14]]) +; CHECK: jumpr r31 +define <64 x i8> @test_14(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_15: +; CHECK: r[[REG15:[0-9]+]] = #15 +; CHECK: v0 = valign(v0,v0,r[[REG15]]) +; CHECK: jumpr r31 +define <64 x i8> @test_15(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_16: +; CHECK: r[[REG16:[0-9]+]] = #16 +; CHECK: v0 = valign(v0,v0,r[[REG16]]) +; CHECK: jumpr r31 +define <64 x i8> @test_16(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_17: +; CHECK: r[[REG17:[0-9]+]] = #17 +; CHECK: v0 = valign(v0,v0,r[[REG17]]) +; CHECK: jumpr r31 +define <64 x i8> @test_17(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_18: +; CHECK: r[[REG18:[0-9]+]] = #18 +; CHECK: v0 = valign(v0,v0,r[[REG18]]) +; CHECK: jumpr r31 +define <64 x i8> @test_18(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_19: +; CHECK: r[[REG19:[0-9]+]] = #19 +; CHECK: v0 = valign(v0,v0,r[[REG19]]) +; CHECK: jumpr r31 +define <64 x i8> @test_19(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_20: +; CHECK: r[[REG20:[0-9]+]] = #20 +; CHECK: v0 = valign(v0,v0,r[[REG20]]) +; CHECK: jumpr r31 +define <64 x i8> @test_20(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_21: +; CHECK: r[[REG21:[0-9]+]] = #21 +; CHECK: v0 = valign(v0,v0,r[[REG21]]) +; CHECK: jumpr r31 +define <64 x i8> @test_21(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_22: +; CHECK: r[[REG22:[0-9]+]] = #22 +; CHECK: v0 = valign(v0,v0,r[[REG22]]) +; CHECK: jumpr r31 +define <64 x i8> @test_22(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_23: +; CHECK: r[[REG23:[0-9]+]] = #23 +; CHECK: v0 = valign(v0,v0,r[[REG23]]) +; CHECK: jumpr r31 +define <64 x i8> @test_23(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_24: +; CHECK: r[[REG24:[0-9]+]] = #24 +; CHECK: v0 = valign(v0,v0,r[[REG24]]) +; CHECK: jumpr r31 +define <64 x i8> @test_24(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_25: +; CHECK: r[[REG25:[0-9]+]] = #25 +; CHECK: v0 = valign(v0,v0,r[[REG25]]) +; CHECK: jumpr r31 +define <64 x i8> @test_25(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_26: +; CHECK: r[[REG26:[0-9]+]] = #26 +; CHECK: v0 = valign(v0,v0,r[[REG26]]) +; CHECK: jumpr r31 +define <64 x i8> @test_26(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_27: +; CHECK: r[[REG27:[0-9]+]] = #27 +; CHECK: v0 = valign(v0,v0,r[[REG27]]) +; CHECK: jumpr r31 +define <64 x i8> @test_27(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_28: +; CHECK: r[[REG28:[0-9]+]] = #28 +; CHECK: v0 = valign(v0,v0,r[[REG28]]) +; CHECK: jumpr r31 +define <64 x i8> @test_28(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_29: +; CHECK: r[[REG29:[0-9]+]] = #29 +; CHECK: v0 = valign(v0,v0,r[[REG29]]) +; CHECK: jumpr r31 +define <64 x i8> @test_29(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_30: +; CHECK: r[[REG30:[0-9]+]] = #30 +; CHECK: v0 = valign(v0,v0,r[[REG30]]) +; CHECK: jumpr r31 +define <64 x i8> @test_30(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_31: +; CHECK: r[[REG31:[0-9]+]] = #31 +; CHECK: v0 = valign(v0,v0,r[[REG31]]) +; CHECK: jumpr r31 +define <64 x i8> @test_31(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_32: +; CHECK: r[[REG32:[0-9]+]] = #32 +; CHECK: v0 = valign(v1,v0,r[[REG32]]) +; CHECK: jumpr r31 +define <64 x i8> @test_32(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_33: +; CHECK: r[[REG33:[0-9]+]] = #33 +; CHECK: v0 = valign(v1,v0,r[[REG33]]) +; CHECK: jumpr r31 +define <64 x i8> @test_33(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_34: +; CHECK: r[[REG34:[0-9]+]] = #34 +; CHECK: v0 = valign(v1,v0,r[[REG34]]) +; CHECK: jumpr r31 +define <64 x i8> @test_34(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_35: +; CHECK: r[[REG35:[0-9]+]] = #35 +; CHECK: v0 = valign(v1,v0,r[[REG35]]) +; CHECK: jumpr r31 +define <64 x i8> @test_35(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_36: +; CHECK: r[[REG36:[0-9]+]] = #36 +; CHECK: v0 = valign(v1,v0,r[[REG36]]) +; CHECK: jumpr r31 +define <64 x i8> @test_36(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_37: +; CHECK: r[[REG37:[0-9]+]] = #37 +; CHECK: v0 = valign(v1,v0,r[[REG37]]) +; CHECK: jumpr r31 +define <64 x i8> @test_37(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_38: +; CHECK: r[[REG38:[0-9]+]] = #38 +; CHECK: v0 = valign(v1,v0,r[[REG38]]) +; CHECK: jumpr r31 +define <64 x i8> @test_38(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_39: +; CHECK: r[[REG39:[0-9]+]] = #39 +; CHECK: v0 = valign(v1,v0,r[[REG39]]) +; CHECK: jumpr r31 +define <64 x i8> @test_39(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_40: +; CHECK: r[[REG40:[0-9]+]] = #40 +; CHECK: v0 = valign(v1,v0,r[[REG40]]) +; CHECK: jumpr r31 +define <64 x i8> @test_40(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_41: +; CHECK: r[[REG41:[0-9]+]] = #41 +; CHECK: v0 = valign(v1,v0,r[[REG41]]) +; CHECK: jumpr r31 +define <64 x i8> @test_41(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_42: +; CHECK: r[[REG42:[0-9]+]] = #42 +; CHECK: v0 = valign(v1,v0,r[[REG42]]) +; CHECK: jumpr r31 +define <64 x i8> @test_42(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_43: +; CHECK: r[[REG43:[0-9]+]] = #43 +; CHECK: v0 = valign(v1,v0,r[[REG43]]) +; CHECK: jumpr r31 +define <64 x i8> @test_43(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_44: +; CHECK: r[[REG44:[0-9]+]] = #44 +; CHECK: v0 = valign(v1,v0,r[[REG44]]) +; CHECK: jumpr r31 +define <64 x i8> @test_44(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_45: +; CHECK: r[[REG45:[0-9]+]] = #45 +; CHECK: v0 = valign(v1,v0,r[[REG45]]) +; CHECK: jumpr r31 +define <64 x i8> @test_45(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_46: +; CHECK: r[[REG46:[0-9]+]] = #46 +; CHECK: v0 = valign(v1,v0,r[[REG46]]) +; CHECK: jumpr r31 +define <64 x i8> @test_46(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_47: +; CHECK: r[[REG47:[0-9]+]] = #47 +; CHECK: v0 = valign(v1,v0,r[[REG47]]) +; CHECK: jumpr r31 +define <64 x i8> @test_47(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_48: +; CHECK: r[[REG48:[0-9]+]] = #48 +; CHECK: v0 = valign(v1,v0,r[[REG48]]) +; CHECK: jumpr r31 +define <64 x i8> @test_48(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_49: +; CHECK: r[[REG49:[0-9]+]] = #49 +; CHECK: v0 = valign(v1,v0,r[[REG49]]) +; CHECK: jumpr r31 +define <64 x i8> @test_49(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_50: +; CHECK: r[[REG50:[0-9]+]] = #50 +; CHECK: v0 = valign(v1,v0,r[[REG50]]) +; CHECK: jumpr r31 +define <64 x i8> @test_50(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_51: +; CHECK: r[[REG51:[0-9]+]] = #51 +; CHECK: v0 = valign(v1,v0,r[[REG51]]) +; CHECK: jumpr r31 +define <64 x i8> @test_51(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_52: +; CHECK: r[[REG52:[0-9]+]] = #52 +; CHECK: v0 = valign(v1,v0,r[[REG52]]) +; CHECK: jumpr r31 +define <64 x i8> @test_52(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_53: +; CHECK: r[[REG53:[0-9]+]] = #53 +; CHECK: v0 = valign(v1,v0,r[[REG53]]) +; CHECK: jumpr r31 +define <64 x i8> @test_53(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_54: +; CHECK: r[[REG54:[0-9]+]] = #54 +; CHECK: v0 = valign(v1,v0,r[[REG54]]) +; CHECK: jumpr r31 +define <64 x i8> @test_54(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_55: +; CHECK: r[[REG55:[0-9]+]] = #55 +; CHECK: v0 = valign(v1,v0,r[[REG55]]) +; CHECK: jumpr r31 +define <64 x i8> @test_55(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_56: +; CHECK: r[[REG56:[0-9]+]] = #56 +; CHECK: v0 = valign(v1,v0,r[[REG56]]) +; CHECK: jumpr r31 +define <64 x i8> @test_56(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_57: +; CHECK: r[[REG57:[0-9]+]] = #57 +; CHECK: v0 = valign(v1,v0,r[[REG57]]) +; CHECK: jumpr r31 +define <64 x i8> @test_57(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_58: +; CHECK: r[[REG58:[0-9]+]] = #58 +; CHECK: v0 = valign(v1,v0,r[[REG58]]) +; CHECK: jumpr r31 +define <64 x i8> @test_58(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_59: +; CHECK: r[[REG59:[0-9]+]] = #59 +; CHECK: v0 = valign(v1,v0,r[[REG59]]) +; CHECK: jumpr r31 +define <64 x i8> @test_59(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_60: +; CHECK: r[[REG60:[0-9]+]] = #60 +; CHECK: v0 = valign(v1,v0,r[[REG60]]) +; CHECK: jumpr r31 +define <64 x i8> @test_60(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_61: +; CHECK: r[[REG61:[0-9]+]] = #61 +; CHECK: v0 = valign(v1,v0,r[[REG61]]) +; CHECK: jumpr r31 +define <64 x i8> @test_61(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_62: +; CHECK: r[[REG62:[0-9]+]] = #62 +; CHECK: v0 = valign(v1,v0,r[[REG62]]) +; CHECK: jumpr r31 +define <64 x i8> @test_62(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_63: +; CHECK: r[[REG63:[0-9]+]] = #63 +; CHECK: v0 = valign(v1,v0,r[[REG63]]) +; CHECK: jumpr r31 +define <64 x i8> @test_63(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_64: +; CHECK: v0 = v1 +; CHECK: jumpr r31 +define <64 x i8> @test_64(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_65: +; CHECK: v0 = valign(v1,v1,#1) +; CHECK: jumpr r31 +define <64 x i8> @test_65(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_66: +; CHECK: v0 = valign(v1,v1,#2) +; CHECK: jumpr r31 +define <64 x i8> @test_66(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_67: +; CHECK: v0 = valign(v1,v1,#3) +; CHECK: jumpr r31 +define <64 x i8> @test_67(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_68: +; CHECK: v0 = valign(v1,v1,#4) +; CHECK: jumpr r31 +define <64 x i8> @test_68(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_69: +; CHECK: v0 = valign(v1,v1,#5) +; CHECK: jumpr r31 +define <64 x i8> @test_69(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_70: +; CHECK: v0 = valign(v1,v1,#6) +; CHECK: jumpr r31 +define <64 x i8> @test_70(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_71: +; CHECK: v0 = valign(v1,v1,#7) +; CHECK: jumpr r31 +define <64 x i8> @test_71(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_72: +; CHECK: r[[REG72:[0-9]+]] = #8 +; CHECK: v0 = valign(v1,v1,r[[REG72]]) +; CHECK: jumpr r31 +define <64 x i8> @test_72(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_73: +; CHECK: r[[REG73:[0-9]+]] = #9 +; CHECK: v0 = valign(v1,v1,r[[REG73]]) +; CHECK: jumpr r31 +define <64 x i8> @test_73(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_74: +; CHECK: r[[REG74:[0-9]+]] = #10 +; CHECK: v0 = valign(v1,v1,r[[REG74]]) +; CHECK: jumpr r31 +define <64 x i8> @test_74(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_75: +; CHECK: r[[REG75:[0-9]+]] = #11 +; CHECK: v0 = valign(v1,v1,r[[REG75]]) +; CHECK: jumpr r31 +define <64 x i8> @test_75(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_76: +; CHECK: r[[REG76:[0-9]+]] = #12 +; CHECK: v0 = valign(v1,v1,r[[REG76]]) +; CHECK: jumpr r31 +define <64 x i8> @test_76(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_77: +; CHECK: r[[REG77:[0-9]+]] = #13 +; CHECK: v0 = valign(v1,v1,r[[REG77]]) +; CHECK: jumpr r31 +define <64 x i8> @test_77(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_78: +; CHECK: r[[REG78:[0-9]+]] = #14 +; CHECK: v0 = valign(v1,v1,r[[REG78]]) +; CHECK: jumpr r31 +define <64 x i8> @test_78(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_79: +; CHECK: r[[REG79:[0-9]+]] = #15 +; CHECK: v0 = valign(v1,v1,r[[REG79]]) +; CHECK: jumpr r31 +define <64 x i8> @test_79(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_80: +; CHECK: r[[REG80:[0-9]+]] = #16 +; CHECK: v0 = valign(v1,v1,r[[REG80]]) +; CHECK: jumpr r31 +define <64 x i8> @test_80(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_81: +; CHECK: r[[REG81:[0-9]+]] = #17 +; CHECK: v0 = valign(v1,v1,r[[REG81]]) +; CHECK: jumpr r31 +define <64 x i8> @test_81(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_82: +; CHECK: r[[REG82:[0-9]+]] = #18 +; CHECK: v0 = valign(v1,v1,r[[REG82]]) +; CHECK: jumpr r31 +define <64 x i8> @test_82(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_83: +; CHECK: r[[REG83:[0-9]+]] = #19 +; CHECK: v0 = valign(v1,v1,r[[REG83]]) +; CHECK: jumpr r31 +define <64 x i8> @test_83(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_84: +; CHECK: r[[REG84:[0-9]+]] = #20 +; CHECK: v0 = valign(v1,v1,r[[REG84]]) +; CHECK: jumpr r31 +define <64 x i8> @test_84(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_85: +; CHECK: r[[REG85:[0-9]+]] = #21 +; CHECK: v0 = valign(v1,v1,r[[REG85]]) +; CHECK: jumpr r31 +define <64 x i8> @test_85(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_86: +; CHECK: r[[REG86:[0-9]+]] = #22 +; CHECK: v0 = valign(v1,v1,r[[REG86]]) +; CHECK: jumpr r31 +define <64 x i8> @test_86(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_87: +; CHECK: r[[REG87:[0-9]+]] = #23 +; CHECK: v0 = valign(v1,v1,r[[REG87]]) +; CHECK: jumpr r31 +define <64 x i8> @test_87(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_88: +; CHECK: r[[REG88:[0-9]+]] = #24 +; CHECK: v0 = valign(v1,v1,r[[REG88]]) +; CHECK: jumpr r31 +define <64 x i8> @test_88(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_89: +; CHECK: r[[REG89:[0-9]+]] = #25 +; CHECK: v0 = valign(v1,v1,r[[REG89]]) +; CHECK: jumpr r31 +define <64 x i8> @test_89(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_90: +; CHECK: r[[REG90:[0-9]+]] = #26 +; CHECK: v0 = valign(v1,v1,r[[REG90]]) +; CHECK: jumpr r31 +define <64 x i8> @test_90(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_91: +; CHECK: r[[REG91:[0-9]+]] = #27 +; CHECK: v0 = valign(v1,v1,r[[REG91]]) +; CHECK: jumpr r31 +define <64 x i8> @test_91(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_92: +; CHECK: r[[REG92:[0-9]+]] = #28 +; CHECK: v0 = valign(v1,v1,r[[REG92]]) +; CHECK: jumpr r31 +define <64 x i8> @test_92(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_93: +; CHECK: r[[REG93:[0-9]+]] = #29 +; CHECK: v0 = valign(v1,v1,r[[REG93]]) +; CHECK: jumpr r31 +define <64 x i8> @test_93(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +; CHECK-LABEL: test_94: +; CHECK: r[[REG94:[0-9]+]] = #30 +; CHECK: v0 = valign(v1,v1,r[[REG94]]) +; CHECK: jumpr r31 +define <64 x i8> @test_94(<64 x i8> %v0, <64 x i8> %v1) #0 { + %t0 = shufflevector <64 x i8> %v0, <64 x i8> %v1, <64 x i32> + ret <64 x i8> %t0 +} + +attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }