|
|
|
@ -381,9 +381,7 @@ define <8 x float> @shuffle_v8f32_10225466(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_00015444(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_00015444
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,0,0,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,0,1,4,4,4,5]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,0,1,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 5, i32 4, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -392,9 +390,7 @@ define <8 x float> @shuffle_v8f32_00015444(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_00204644(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_00204644
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,2,0,0,4,6,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,0,4,4,6,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,0,4,6,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 0, i32 4, i32 6, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -403,9 +399,7 @@ define <8 x float> @shuffle_v8f32_00204644(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_03004474(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_03004474
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,0,3,0,4,4,7,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,3,0,0,4,7,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,3,0,0,4,4,7,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 3, i32 0, i32 0, i32 4, i32 4, i32 7, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -414,9 +408,7 @@ define <8 x float> @shuffle_v8f32_03004474(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_10004444(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_10004444
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,0,0,0,4,4,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,0,0,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,0,0,4,4,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 1, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -425,9 +417,7 @@ define <8 x float> @shuffle_v8f32_10004444(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_22006446(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_22006446
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,0,0,2,6,4,4,6]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[2,2,0,0,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[2,2,0,0,6,4,4,6]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 2, i32 2, i32 0, i32 0, i32 6, i32 4, i32 4, i32 6>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -436,9 +426,7 @@ define <8 x float> @shuffle_v8f32_22006446(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_33307474(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_33307474
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[3,0,3,0,7,4,7,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,3,3,0,7,7,7,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,3,3,0,7,4,7,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 3, i32 3, i32 3, i32 0, i32 7, i32 4, i32 7, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -447,8 +435,7 @@ define <8 x float> @shuffle_v8f32_33307474(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_32104567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_32104567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[3,2,1,0,7,6,5,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,2,1,0,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -457,9 +444,7 @@ define <8 x float> @shuffle_v8f32_32104567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_00236744(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_00236744
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,3,0,0,6,7,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,6,7,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 3, i32 6, i32 7, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -468,9 +453,7 @@ define <8 x float> @shuffle_v8f32_00236744(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_00226644(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_00226644
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,2,0,0,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,2,4,4,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,2,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 6, i32 6, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -479,8 +462,7 @@ define <8 x float> @shuffle_v8f32_00226644(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_10324567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_10324567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,3,2,5,4,7,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,3,2,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -489,8 +471,7 @@ define <8 x float> @shuffle_v8f32_10324567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_11334567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_11334567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,1,3,3,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -499,8 +480,7 @@ define <8 x float> @shuffle_v8f32_11334567(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_01235467(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_01235467
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,1,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 7>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -509,8 +489,7 @@ define <8 x float> @shuffle_v8f32_01235467(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_01235466(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_01235466
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,2,5,4,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,1,2,3,5,4,6,6]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 6>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -519,9 +498,7 @@ define <8 x float> @shuffle_v8f32_01235466(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_002u6u44(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_002u6u44
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,1,0,0,6,5,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 undef, i32 6, i32 undef, i32 4, i32 4>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -530,9 +507,7 @@ define <8 x float> @shuffle_v8f32_002u6u44(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_00uu66uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_00uu66uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,2,2,3,6,6,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 0, i32 undef, i32 undef, i32 6, i32 6, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -541,8 +516,7 @@ define <8 x float> @shuffle_v8f32_00uu66uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_103245uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_103245uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,3,2,5,4,7,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -551,8 +525,7 @@ define <8 x float> @shuffle_v8f32_103245uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_1133uu67(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_1133uu67
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 undef, i32 undef, i32 6, i32 7>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -561,8 +534,7 @@ define <8 x float> @shuffle_v8f32_1133uu67(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_0uu354uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_0uu354uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 0, i32 undef, i32 undef, i32 3, i32 5, i32 4, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -571,8 +543,7 @@ define <8 x float> @shuffle_v8f32_0uu354uu(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
define <8 x float> @shuffle_v8f32_uuu3uu66(<8 x float> %a, <8 x float> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8f32_uuu3uu66
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,1,2,2,4,5,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 3, i32 undef, i32 undef, i32 6, i32 6>
|
|
|
|
|
ret <8 x float> %shuffle
|
|
|
|
@ -956,9 +927,7 @@ define <8 x i32> @shuffle_v8i32_10225466(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_00015444(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_00015444
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,0,0,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,0,1,4,4,4,5]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,0,1,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 5, i32 4, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -967,9 +936,7 @@ define <8 x i32> @shuffle_v8i32_00015444(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_00204644(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_00204644
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,2,0,0,4,6,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,0,4,4,6,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,0,4,6,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 0, i32 4, i32 6, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -978,9 +945,7 @@ define <8 x i32> @shuffle_v8i32_00204644(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_03004474(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_03004474
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,0,3,0,4,4,7,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,3,0,0,4,7,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,3,0,0,4,4,7,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 3, i32 0, i32 0, i32 4, i32 4, i32 7, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -989,9 +954,7 @@ define <8 x i32> @shuffle_v8i32_03004474(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_10004444(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_10004444
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,0,0,0,4,4,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,0,0,5,4,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,0,0,4,4,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1000,9 +963,7 @@ define <8 x i32> @shuffle_v8i32_10004444(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_22006446(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_22006446
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,0,0,2,6,4,4,6]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[2,2,0,0,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[2,2,0,0,6,4,4,6]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 2, i32 2, i32 0, i32 0, i32 6, i32 4, i32 4, i32 6>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1011,9 +972,7 @@ define <8 x i32> @shuffle_v8i32_22006446(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_33307474(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_33307474
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[3,0,3,0,7,4,7,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,3,3,0,7,7,7,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,3,3,0,7,4,7,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 3, i32 3, i32 3, i32 0, i32 7, i32 4, i32 7, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1022,8 +981,7 @@ define <8 x i32> @shuffle_v8i32_33307474(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_32104567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_32104567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[3,2,1,0,7,6,5,4]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[3,2,1,0,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1032,9 +990,7 @@ define <8 x i32> @shuffle_v8i32_32104567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_00236744(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_00236744
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,3,0,0,6,7,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,6,7,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 3, i32 6, i32 7, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1043,9 +999,7 @@ define <8 x i32> @shuffle_v8i32_00236744(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_00226644(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_00226644
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,2,0,0,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,2,4,4,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,2,6,6,4,4]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 6, i32 6, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1054,8 +1008,7 @@ define <8 x i32> @shuffle_v8i32_00226644(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_10324567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_10324567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,3,2,5,4,7,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,0,3,2,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1064,8 +1017,7 @@ define <8 x i32> @shuffle_v8i32_10324567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_11334567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_11334567
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[1,1,3,3,4,5,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 4, i32 5, i32 6, i32 7>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1074,8 +1026,7 @@ define <8 x i32> @shuffle_v8i32_11334567(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_01235467(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_01235467
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,1,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 7>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1084,8 +1035,7 @@ define <8 x i32> @shuffle_v8i32_01235467(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_01235466(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_01235466
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,2,5,4,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,1,2,3,5,4,6,6]
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 6>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1094,9 +1044,7 @@ define <8 x i32> @shuffle_v8i32_01235466(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_002u6u44(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_002u6u44
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,1,0,0,6,5,4,4]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 undef, i32 6, i32 undef, i32 4, i32 4>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1105,9 +1053,7 @@ define <8 x i32> @shuffle_v8i32_002u6u44(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_00uu66uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_00uu66uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[2,2,2,3,6,6,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm0 = ymm0[0,0,2,3,4,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 undef, i32 undef, i32 6, i32 6, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1116,8 +1062,7 @@ define <8 x i32> @shuffle_v8i32_00uu66uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_103245uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_103245uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,3,2,5,4,7,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1126,8 +1071,7 @@ define <8 x i32> @shuffle_v8i32_103245uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_1133uu67(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_1133uu67
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,1,3,3,5,5,7,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 undef, i32 undef, i32 6, i32 7>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1136,8 +1080,7 @@ define <8 x i32> @shuffle_v8i32_1133uu67(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_0uu354uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_0uu354uu
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[1,0,2,3,5,4,6,7]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 undef, i32 undef, i32 3, i32 5, i32 4, i32 undef, i32 undef>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
@ -1146,8 +1089,7 @@ define <8 x i32> @shuffle_v8i32_0uu354uu(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
define <8 x i32> @shuffle_v8i32_uuu3uu66(<8 x i32> %a, <8 x i32> %b) {
|
|
|
|
|
; ALL-LABEL: @shuffle_v8i32_uuu3uu66
|
|
|
|
|
; ALL: # BB#0:
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}} # ymm1 = ymm0[0,1,2,2,4,5,6,6]
|
|
|
|
|
; ALL-NEXT: vblendps {{.*}} # ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
|
|
|
|
|
; ALL-NEXT: vpermilps {{.*}}, %ymm0, %ymm0
|
|
|
|
|
; ALL-NEXT: retq
|
|
|
|
|
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 3, i32 undef, i32 undef, i32 6, i32 6>
|
|
|
|
|
ret <8 x i32> %shuffle
|
|
|
|
|