|
|
|
@ -4535,7 +4535,7 @@ define <16 x i8> @test_masked_16xi8_perm_mask0(<16 x i8> %vec, <16 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm2, %xmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[8,6,12,4,7,9,14,8,4,12,9,4,14,15,12,14] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[8,6,12,4,7,9,14,8,4,12,9,4,14,15,12,14] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %xmm1, %xmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4555,7 +4555,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mask0(<16 x i8> %vec, <16 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[8,6,12,4,7,9,14,8,4,12,9,4,14,15,12,14] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[8,6,12,4,7,9,14,8,4,12,9,4,14,15,12,14] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mask0:
|
|
|
|
@ -4572,7 +4572,7 @@ define <16 x i8> @test_masked_16xi8_perm_mask1(<16 x i8> %vec, <16 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm2, %xmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[4,11,14,10,7,1,6,9,14,15,7,13,4,12,8,0] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[4,11,14,10,7,1,6,9,14,15,7,13,4,12,8,0] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %xmm1, %xmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4592,7 +4592,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mask1(<16 x i8> %vec, <16 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[4,11,14,10,7,1,6,9,14,15,7,13,4,12,8,0] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[4,11,14,10,7,1,6,9,14,15,7,13,4,12,8,0] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mask1:
|
|
|
|
@ -4609,7 +4609,7 @@ define <16 x i8> @test_masked_16xi8_perm_mask2(<16 x i8> %vec, <16 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm2, %xmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[11,6,13,10,0,7,13,3,5,13,3,9,3,15,12,7] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[11,6,13,10,0,7,13,3,5,13,3,9,3,15,12,7] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %xmm1, %xmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4629,7 +4629,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mask2(<16 x i8> %vec, <16 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[11,6,13,10,0,7,13,3,5,13,3,9,3,15,12,7] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[11,6,13,10,0,7,13,3,5,13,3,9,3,15,12,7] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mask2:
|
|
|
|
@ -4659,7 +4659,7 @@ define <16 x i8> @test_masked_16xi8_perm_mask3(<16 x i8> %vec, <16 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm2, %xmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[1,5,8,14,1,8,11,8,13,8,15,9,9,7,9,6] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm1 {%k1} = xmm0[1,5,8,14,1,8,11,8,13,8,15,9,9,7,9,6] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %xmm1, %xmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4679,7 +4679,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mask3(<16 x i8> %vec, <16 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[1,5,8,14,1,8,11,8,13,8,15,9,9,7,9,6] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm0[1,5,8,14,1,8,11,8,13,8,15,9,9,7,9,6] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mask3:
|
|
|
|
@ -4713,7 +4713,7 @@ define <16 x i8> @test_masked_16xi8_perm_mem_mask0(<16 x i8>* %vp, <16 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[9,10,7,1,12,14,14,13,14,14,8,6,11,4,12,13] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[9,10,7,1,12,14,14,13,14,14,8,6,11,4,12,13] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi8_perm_mem_mask0:
|
|
|
|
@ -4734,7 +4734,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mem_mask0(<16 x i8>* %vp, <16 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm0, %xmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[9,10,7,1,12,14,14,13,14,14,8,6,11,4,12,13] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[9,10,7,1,12,14,14,13,14,14,8,6,11,4,12,13] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mem_mask0:
|
|
|
|
@ -4755,7 +4755,7 @@ define <16 x i8> @test_masked_16xi8_perm_mem_mask1(<16 x i8>* %vp, <16 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[14,9,15,9,7,10,15,14,12,1,9,7,10,13,3,11] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[14,9,15,9,7,10,15,14,12,1,9,7,10,13,3,11] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi8_perm_mem_mask1:
|
|
|
|
@ -4776,7 +4776,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mem_mask1(<16 x i8>* %vp, <16 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm0, %xmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[14,9,15,9,7,10,15,14,12,1,9,7,10,13,3,11] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[14,9,15,9,7,10,15,14,12,1,9,7,10,13,3,11] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mem_mask1:
|
|
|
|
@ -4797,7 +4797,7 @@ define <16 x i8> @test_masked_16xi8_perm_mem_mask2(<16 x i8>* %vp, <16 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[1,3,12,5,13,1,2,11,0,9,14,8,10,0,10,9] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[1,3,12,5,13,1,2,11,0,9,14,8,10,0,10,9] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi8_perm_mem_mask2:
|
|
|
|
@ -4818,7 +4818,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mem_mask2(<16 x i8>* %vp, <16 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm0, %xmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[1,3,12,5,13,1,2,11,0,9,14,8,10,0,10,9] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[1,3,12,5,13,1,2,11,0,9,14,8,10,0,10,9] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mem_mask2:
|
|
|
|
@ -4855,7 +4855,7 @@ define <16 x i8> @test_masked_16xi8_perm_mem_mask3(<16 x i8>* %vp, <16 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm1, %xmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[9,6,5,15,0,0,15,2,1,3,12,14,0,6,1,4] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} = xmm2[9,6,5,15,0,0,15,2,1,3,12,14,0,6,1,4] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi8_perm_mem_mask3:
|
|
|
|
@ -4876,7 +4876,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mem_mask3(<16 x i8>* %vp, <16 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %xmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %xmm0, %xmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[9,6,5,15,0,0,15,2,1,3,12,14,0,6,1,4] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} xmm0 {%k1} {z} = xmm1[9,6,5,15,0,0,15,2,1,3,12,14,0,6,1,4] sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi8_perm_mem_mask3:
|
|
|
|
@ -4895,7 +4895,7 @@ define <16 x i8> @test_masked_z_16xi8_perm_mem_mask3(<16 x i8>* %vp, <16 x i8> %
|
|
|
|
|
define <32 x i8> @test_32xi8_perm_mask0(<32 x i8> %vec) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi8_perm_mask0:
|
|
|
|
@ -4909,7 +4909,7 @@ define <32 x i8> @test_masked_32xi8_perm_mask0(<32 x i8> %vec, <32 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm2, %ymm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %ymm1, %ymm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4929,7 +4929,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mask0(<32 x i8> %vec, <32 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[8,0,1,15,3,5,11,13,14,2,10,15,0,10,13,5,20,25,23,18,23,22,25,24,20,21,29,20,24,16,27,21] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mask0:
|
|
|
|
@ -4946,7 +4946,7 @@ define <32 x i8> @test_masked_32xi8_perm_mask1(<32 x i8> %vec, <32 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm2, %ymm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[0,4,3,15,5,4,5,15,10,9,11,6,6,10,0,3,21,19,26,22,30,25,22,22,27,22,26,16,23,20,18,24] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[0,4,3,15,5,4,5,15,10,9,11,6,6,10,0,3,21,19,26,22,30,25,22,22,27,22,26,16,23,20,18,24] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %ymm1, %ymm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -4966,7 +4966,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mask1(<32 x i8> %vec, <32 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[0,4,3,15,5,4,5,15,10,9,11,6,6,10,0,3,21,19,26,22,30,25,22,22,27,22,26,16,23,20,18,24] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[0,4,3,15,5,4,5,15,10,9,11,6,6,10,0,3,21,19,26,22,30,25,22,22,27,22,26,16,23,20,18,24] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mask1:
|
|
|
|
@ -4983,7 +4983,7 @@ define <32 x i8> @test_masked_32xi8_perm_mask2(<32 x i8> %vec, <32 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm2, %ymm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[7,8,12,14,7,4,7,12,14,12,3,15,10,1,11,15,22,26,21,19,27,16,29,24,17,17,26,29,20,31,17,29] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[7,8,12,14,7,4,7,12,14,12,3,15,10,1,11,15,22,26,21,19,27,16,29,24,17,17,26,29,20,31,17,29] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %ymm1, %ymm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5003,7 +5003,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mask2(<32 x i8> %vec, <32 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[7,8,12,14,7,4,7,12,14,12,3,15,10,1,11,15,22,26,21,19,27,16,29,24,17,17,26,29,20,31,17,29] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[7,8,12,14,7,4,7,12,14,12,3,15,10,1,11,15,22,26,21,19,27,16,29,24,17,17,26,29,20,31,17,29] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mask2:
|
|
|
|
@ -5019,7 +5019,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mask2(<32 x i8> %vec, <32 x i8> %mask
|
|
|
|
|
define <32 x i8> @test_32xi8_perm_mask3(<32 x i8> %vec) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi8_perm_mask3:
|
|
|
|
@ -5033,7 +5033,7 @@ define <32 x i8> @test_masked_32xi8_perm_mask3(<32 x i8> %vec, <32 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm2, %ymm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm1 {%k1} = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa %ymm1, %ymm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5053,7 +5053,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mask3(<32 x i8> %vec, <32 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm0[6,1,4,7,12,13,2,8,10,5,13,4,0,0,10,8,31,31,30,16,27,27,26,27,30,26,21,24,19,25,16,18] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mask3:
|
|
|
|
@ -5070,7 +5070,7 @@ define <32 x i8> @test_32xi8_perm_mem_mask0(<32 x i8>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi8_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm0 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi8_perm_mem_mask0:
|
|
|
|
@ -5087,7 +5087,7 @@ define <32 x i8> @test_masked_32xi8_perm_mem_mask0(<32 x i8>* %vp, <32 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm2 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi8_perm_mem_mask0:
|
|
|
|
@ -5108,7 +5108,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mem_mask0(<32 x i8>* %vp, <32 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm1 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[9,0,2,15,4,6,8,4,7,3,0,2,8,1,6,5,22,17,30,23,29,31,21,23,27,22,20,27,30,30,26,22] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mem_mask0:
|
|
|
|
@ -5129,7 +5129,7 @@ define <32 x i8> @test_masked_32xi8_perm_mem_mask1(<32 x i8>* %vp, <32 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm2 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[15,10,1,1,11,0,0,6,8,7,7,9,10,6,5,15,20,28,22,21,17,29,27,30,23,26,17,22,19,16,31,19] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[15,10,1,1,11,0,0,6,8,7,7,9,10,6,5,15,20,28,22,21,17,29,27,30,23,26,17,22,19,16,31,19] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi8_perm_mem_mask1:
|
|
|
|
@ -5150,7 +5150,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mem_mask1(<32 x i8>* %vp, <32 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm1 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[15,10,1,1,11,0,0,6,8,7,7,9,10,6,5,15,20,28,22,21,17,29,27,30,23,26,17,22,19,16,31,19] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[15,10,1,1,11,0,0,6,8,7,7,9,10,6,5,15,20,28,22,21,17,29,27,30,23,26,17,22,19,16,31,19] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mem_mask1:
|
|
|
|
@ -5171,7 +5171,7 @@ define <32 x i8> @test_masked_32xi8_perm_mem_mask2(<32 x i8>* %vp, <32 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm2 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[2,3,6,8,2,15,15,2,6,10,14,7,14,5,7,7,26,19,25,19,21,31,30,29,16,18,20,28,29,25,27,28] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[2,3,6,8,2,15,15,2,6,10,14,7,14,5,7,7,26,19,25,19,21,31,30,29,16,18,20,28,29,25,27,28] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi8_perm_mem_mask2:
|
|
|
|
@ -5192,7 +5192,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mem_mask2(<32 x i8>* %vp, <32 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm1 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[2,3,6,8,2,15,15,2,6,10,14,7,14,5,7,7,26,19,25,19,21,31,30,29,16,18,20,28,29,25,27,28] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[2,3,6,8,2,15,15,2,6,10,14,7,14,5,7,7,26,19,25,19,21,31,30,29,16,18,20,28,29,25,27,28] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mem_mask2:
|
|
|
|
@ -5212,7 +5212,7 @@ define <32 x i8> @test_32xi8_perm_mem_mask3(<32 x i8>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi8_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm0 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi8_perm_mem_mask3:
|
|
|
|
@ -5229,7 +5229,7 @@ define <32 x i8> @test_masked_32xi8_perm_mem_mask3(<32 x i8>* %vp, <32 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm2 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} = ymm2[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi8_perm_mem_mask3:
|
|
|
|
@ -5250,7 +5250,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mem_mask3(<32 x i8>* %vp, <32 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa (%rdi), %ymm1 # sched: [7:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} ymm0 {%k1} {z} = ymm1[1,1,13,0,3,0,0,13,5,2,2,10,15,8,14,8,25,26,28,28,31,27,30,19,24,25,29,23,28,22,25,29] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi8_perm_mem_mask3:
|
|
|
|
@ -5269,7 +5269,7 @@ define <32 x i8> @test_masked_z_32xi8_perm_mem_mask3(<32 x i8>* %vp, <32 x i8> %
|
|
|
|
|
define <64 x i8> @test_64xi8_perm_mask0(<64 x i8> %vec) {
|
|
|
|
|
; GENERIC-LABEL: test_64xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_64xi8_perm_mask0:
|
|
|
|
@ -5283,7 +5283,7 @@ define <64 x i8> @test_masked_64xi8_perm_mask0(<64 x i8> %vec, <64 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_64xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm2, %zmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 %zmm1, %zmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5303,7 +5303,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mask0(<64 x i8> %vec, <64 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_64xi8_perm_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[8,4,1,13,15,4,6,12,0,10,2,4,13,0,0,6,23,29,27,26,18,31,22,25,22,16,23,18,16,25,26,17,40,37,38,44,39,46,41,39,42,37,33,42,41,44,34,46,60,62,61,58,60,56,60,51,60,55,60,55,60,49,48,62] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mask0:
|
|
|
|
@ -5320,7 +5320,7 @@ define <64 x i8> @test_masked_64xi8_perm_mask1(<64 x i8> %vec, <64 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_64xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm2, %zmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[7,14,15,10,9,3,1,13,14,12,11,6,4,1,6,9,30,30,22,17,28,27,16,23,26,16,30,31,27,17,17,21,32,37,32,47,45,33,46,35,35,42,47,33,32,37,32,41,61,50,49,53,63,50,63,53,55,52,62,63,58,50,63,49] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[7,14,15,10,9,3,1,13,14,12,11,6,4,1,6,9,30,30,22,17,28,27,16,23,26,16,30,31,27,17,17,21,32,37,32,47,45,33,46,35,35,42,47,33,32,37,32,41,61,50,49,53,63,50,63,53,55,52,62,63,58,50,63,49] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 %zmm1, %zmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5340,7 +5340,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mask1(<64 x i8> %vec, <64 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_64xi8_perm_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[7,14,15,10,9,3,1,13,14,12,11,6,4,1,6,9,30,30,22,17,28,27,16,23,26,16,30,31,27,17,17,21,32,37,32,47,45,33,46,35,35,42,47,33,32,37,32,41,61,50,49,53,63,50,63,53,55,52,62,63,58,50,63,49] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[7,14,15,10,9,3,1,13,14,12,11,6,4,1,6,9,30,30,22,17,28,27,16,23,26,16,30,31,27,17,17,21,32,37,32,47,45,33,46,35,35,42,47,33,32,37,32,41,61,50,49,53,63,50,63,53,55,52,62,63,58,50,63,49] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mask1:
|
|
|
|
@ -5357,7 +5357,7 @@ define <64 x i8> @test_masked_64xi8_perm_mask2(<64 x i8> %vec, <64 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_64xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm2, %zmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[9,2,14,15,12,5,3,12,4,6,0,2,0,1,1,6,24,27,18,22,26,17,23,21,31,16,22,22,27,21,19,20,39,47,44,36,40,43,44,39,38,44,38,35,39,46,34,39,58,55,51,48,59,57,48,52,60,58,56,50,59,55,58,60] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[9,2,14,15,12,5,3,12,4,6,0,2,0,1,1,6,24,27,18,22,26,17,23,21,31,16,22,22,27,21,19,20,39,47,44,36,40,43,44,39,38,44,38,35,39,46,34,39,58,55,51,48,59,57,48,52,60,58,56,50,59,55,58,60] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 %zmm1, %zmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5377,7 +5377,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mask2(<64 x i8> %vec, <64 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_64xi8_perm_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[9,2,14,15,12,5,3,12,4,6,0,2,0,1,1,6,24,27,18,22,26,17,23,21,31,16,22,22,27,21,19,20,39,47,44,36,40,43,44,39,38,44,38,35,39,46,34,39,58,55,51,48,59,57,48,52,60,58,56,50,59,55,58,60] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[9,2,14,15,12,5,3,12,4,6,0,2,0,1,1,6,24,27,18,22,26,17,23,21,31,16,22,22,27,21,19,20,39,47,44,36,40,43,44,39,38,44,38,35,39,46,34,39,58,55,51,48,59,57,48,52,60,58,56,50,59,55,58,60] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mask2:
|
|
|
|
@ -5393,7 +5393,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mask2(<64 x i8> %vec, <64 x i8> %mask
|
|
|
|
|
define <64 x i8> @test_64xi8_perm_mask3(<64 x i8> %vec) {
|
|
|
|
|
; GENERIC-LABEL: test_64xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_64xi8_perm_mask3:
|
|
|
|
@ -5407,7 +5407,7 @@ define <64 x i8> @test_masked_64xi8_perm_mask3(<64 x i8> %vec, <64 x i8> %vec2,
|
|
|
|
|
; GENERIC-LABEL: test_masked_64xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm2, %zmm2, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm1 {%k1} = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 %zmm1, %zmm0 # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
@ -5427,7 +5427,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mask3(<64 x i8> %vec, <64 x i8> %mask
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_64xi8_perm_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm0[3,12,4,15,1,14,0,4,8,9,6,1,4,4,12,14,25,16,28,20,21,24,19,30,18,22,20,24,25,26,24,22,42,38,44,44,36,37,42,34,43,38,41,34,42,37,39,38,55,59,53,58,48,52,59,48,57,48,55,62,48,56,49,61] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mask3:
|
|
|
|
@ -5444,7 +5444,7 @@ define <64 x i8> @test_64xi8_perm_mem_mask0(<64 x i8>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_64xi8_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm0 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_64xi8_perm_mem_mask0:
|
|
|
|
@ -5461,7 +5461,7 @@ define <64 x i8> @test_masked_64xi8_perm_mem_mask0(<64 x i8>* %vp, <64 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_64xi8_perm_mem_mask0:
|
|
|
|
@ -5482,7 +5482,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mem_mask0(<64 x i8>* %vp, <64 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[0,9,15,13,11,11,3,12,4,1,7,5,2,6,14,6,23,27,24,18,30,23,28,22,28,22,19,19,31,25,16,22,35,33,34,32,42,34,41,41,43,40,36,46,37,39,42,40,63,63,62,62,57,55,59,51,52,48,50,48,58,50,60,58] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mem_mask0:
|
|
|
|
@ -5503,7 +5503,7 @@ define <64 x i8> @test_masked_64xi8_perm_mem_mask1(<64 x i8>* %vp, <64 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[15,6,14,7,5,1,14,12,5,7,5,0,0,5,3,8,19,19,26,27,20,29,20,21,27,16,30,17,23,27,16,28,47,39,33,33,33,44,38,46,39,33,38,44,45,32,34,39,50,61,62,53,54,56,52,56,51,52,55,57,56,52,51,49] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[15,6,14,7,5,1,14,12,5,7,5,0,0,5,3,8,19,19,26,27,20,29,20,21,27,16,30,17,23,27,16,28,47,39,33,33,33,44,38,46,39,33,38,44,45,32,34,39,50,61,62,53,54,56,52,56,51,52,55,57,56,52,51,49] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_64xi8_perm_mem_mask1:
|
|
|
|
@ -5524,7 +5524,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mem_mask1(<64 x i8>* %vp, <64 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[15,6,14,7,5,1,14,12,5,7,5,0,0,5,3,8,19,19,26,27,20,29,20,21,27,16,30,17,23,27,16,28,47,39,33,33,33,44,38,46,39,33,38,44,45,32,34,39,50,61,62,53,54,56,52,56,51,52,55,57,56,52,51,49] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[15,6,14,7,5,1,14,12,5,7,5,0,0,5,3,8,19,19,26,27,20,29,20,21,27,16,30,17,23,27,16,28,47,39,33,33,33,44,38,46,39,33,38,44,45,32,34,39,50,61,62,53,54,56,52,56,51,52,55,57,56,52,51,49] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mem_mask1:
|
|
|
|
@ -5545,7 +5545,7 @@ define <64 x i8> @test_masked_64xi8_perm_mem_mask2(<64 x i8>* %vp, <64 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[12,1,11,3,4,11,10,11,8,13,1,10,1,11,5,10,27,26,19,29,19,24,26,19,26,20,18,28,24,21,25,16,34,38,47,40,33,44,44,44,41,43,35,43,45,44,37,41,58,62,49,61,56,53,55,48,51,58,58,55,63,55,53,61] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[12,1,11,3,4,11,10,11,8,13,1,10,1,11,5,10,27,26,19,29,19,24,26,19,26,20,18,28,24,21,25,16,34,38,47,40,33,44,44,44,41,43,35,43,45,44,37,41,58,62,49,61,56,53,55,48,51,58,58,55,63,55,53,61] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_64xi8_perm_mem_mask2:
|
|
|
|
@ -5566,7 +5566,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mem_mask2(<64 x i8>* %vp, <64 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[12,1,11,3,4,11,10,11,8,13,1,10,1,11,5,10,27,26,19,29,19,24,26,19,26,20,18,28,24,21,25,16,34,38,47,40,33,44,44,44,41,43,35,43,45,44,37,41,58,62,49,61,56,53,55,48,51,58,58,55,63,55,53,61] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[12,1,11,3,4,11,10,11,8,13,1,10,1,11,5,10,27,26,19,29,19,24,26,19,26,20,18,28,24,21,25,16,34,38,47,40,33,44,44,44,41,43,35,43,45,44,37,41,58,62,49,61,56,53,55,48,51,58,58,55,63,55,53,61] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mem_mask2:
|
|
|
|
@ -5586,7 +5586,7 @@ define <64 x i8> @test_64xi8_perm_mem_mask3(<64 x i8>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_64xi8_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm0 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_64xi8_perm_mem_mask3:
|
|
|
|
@ -5603,7 +5603,7 @@ define <64 x i8> @test_masked_64xi8_perm_mem_mask3(<64 x i8>* %vp, <64 x i8> %ve
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm2 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} = zmm2[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_64xi8_perm_mem_mask3:
|
|
|
|
@ -5624,7 +5624,7 @@ define <64 x i8> @test_masked_z_64xi8_perm_mem_mask3(<64 x i8>* %vp, <64 x i8> %
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vmovdqa64 (%rdi), %zmm1 # sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vptestnmb %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [6:0.50]
|
|
|
|
|
; GENERIC-NEXT: vpshufb {{.*#+}} zmm0 {%k1} {z} = zmm1[4,9,11,13,12,6,0,0,11,15,5,7,11,10,4,10,20,21,24,27,18,16,26,16,16,19,26,17,16,31,22,30,35,38,37,34,37,47,43,38,38,36,40,43,42,39,32,46,54,54,48,50,61,56,59,50,53,61,61,51,48,60,50,60] sched: [8:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_64xi8_perm_mem_mask3:
|
|
|
|
@ -6659,7 +6659,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mask7(<16 x i16> %vec, <16 x i1
|
|
|
|
|
define <16 x i16> @test_16xi16_perm_high_mem_mask0(<16 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_16xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_16xi16_perm_high_mem_mask0:
|
|
|
|
@ -6674,7 +6674,7 @@ define <16 x i16> @test_masked_16xi16_perm_high_mem_mask0(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_high_mem_mask0:
|
|
|
|
@ -6693,7 +6693,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_high_mem_mask0(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,5,6,4,7,8,9,10,11,13,14,12,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_high_mem_mask0:
|
|
|
|
@ -6712,7 +6712,7 @@ define <16 x i16> @test_masked_16xi16_perm_low_mem_mask1(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_low_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[1,3,3,0,4,5,6,7,9,11,11,8,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[1,3,3,0,4,5,6,7,9,11,11,8,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_low_mem_mask1:
|
|
|
|
@ -6731,7 +6731,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mem_mask1(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_low_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[1,3,3,0,4,5,6,7,9,11,11,8,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[1,3,3,0,4,5,6,7,9,11,11,8,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_low_mem_mask1:
|
|
|
|
@ -6750,7 +6750,7 @@ define <16 x i16> @test_masked_16xi16_perm_high_mem_mask2(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_high_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,5,6,5,6,8,9,10,11,13,14,13,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,5,6,5,6,8,9,10,11,13,14,13,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_high_mem_mask2:
|
|
|
|
@ -6769,7 +6769,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_high_mem_mask2(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_high_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,5,6,5,6,8,9,10,11,13,14,13,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,5,6,5,6,8,9,10,11,13,14,13,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_high_mem_mask2:
|
|
|
|
@ -6787,7 +6787,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_high_mem_mask2(<16 x i16>* %vp, <16
|
|
|
|
|
define <16 x i16> @test_16xi16_perm_low_mem_mask3(<16 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_16xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_16xi16_perm_low_mem_mask3:
|
|
|
|
@ -6802,7 +6802,7 @@ define <16 x i16> @test_masked_16xi16_perm_low_mem_mask3(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_low_mem_mask3:
|
|
|
|
@ -6821,7 +6821,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mem_mask3(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[3,2,3,0,4,5,6,7,11,10,11,8,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_low_mem_mask3:
|
|
|
|
@ -6840,7 +6840,7 @@ define <16 x i16> @test_masked_16xi16_perm_high_mem_mask4(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_high_mem_mask4:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,7,7,6,7,8,9,10,11,15,15,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,7,7,6,7,8,9,10,11,15,15,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_high_mem_mask4:
|
|
|
|
@ -6859,7 +6859,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_high_mem_mask4(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_high_mem_mask4:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,7,7,6,7,8,9,10,11,15,15,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,7,7,6,7,8,9,10,11,15,15,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_high_mem_mask4:
|
|
|
|
@ -6878,7 +6878,7 @@ define <16 x i16> @test_masked_16xi16_perm_low_mem_mask5(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_low_mem_mask5:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[1,3,3,2,4,5,6,7,9,11,11,10,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[1,3,3,2,4,5,6,7,9,11,11,10,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_low_mem_mask5:
|
|
|
|
@ -6897,7 +6897,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mem_mask5(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_low_mem_mask5:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[1,3,3,2,4,5,6,7,9,11,11,10,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[1,3,3,2,4,5,6,7,9,11,11,10,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_low_mem_mask5:
|
|
|
|
@ -6915,7 +6915,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mem_mask5(<16 x i16>* %vp, <16
|
|
|
|
|
define <16 x i16> @test_16xi16_perm_high_mem_mask6(<16 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_16xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_16xi16_perm_high_mem_mask6:
|
|
|
|
@ -6930,7 +6930,7 @@ define <16 x i16> @test_masked_16xi16_perm_high_mem_mask6(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_high_mem_mask6:
|
|
|
|
@ -6949,7 +6949,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_high_mem_mask6(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} ymm0 {%k1} {z} = mem[0,1,2,3,4,4,4,5,8,9,10,11,12,12,12,13] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_high_mem_mask6:
|
|
|
|
@ -6968,7 +6968,7 @@ define <16 x i16> @test_masked_16xi16_perm_low_mem_mask7(<16 x i16>* %vp, <16 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_16xi16_perm_low_mem_mask7:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[3,1,3,2,4,5,6,7,11,9,11,10,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} = mem[3,1,3,2,4,5,6,7,11,9,11,10,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_16xi16_perm_low_mem_mask7:
|
|
|
|
@ -6987,7 +6987,7 @@ define <16 x i16> @test_masked_z_16xi16_perm_low_mem_mask7(<16 x i16>* %vp, <16
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_16xi16_perm_low_mem_mask7:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[3,1,3,2,4,5,6,7,11,9,11,10,12,13,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} ymm0 {%k1} {z} = mem[3,1,3,2,4,5,6,7,11,9,11,10,12,13,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_16xi16_perm_low_mem_mask7:
|
|
|
|
@ -7340,7 +7340,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_low_mask7(<32 x i16> %vec, <32 x i1
|
|
|
|
|
define <32 x i16> @test_32xi16_perm_high_mem_mask0(<32 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi16_perm_high_mem_mask0:
|
|
|
|
@ -7355,7 +7355,7 @@ define <32 x i16> @test_masked_32xi16_perm_high_mem_mask0(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_high_mem_mask0:
|
|
|
|
@ -7374,7 +7374,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask0(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_high_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,7,4,5,6,8,9,10,11,15,12,13,14,16,17,18,19,23,20,21,22,24,25,26,27,31,28,29,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_high_mem_mask0:
|
|
|
|
@ -7393,7 +7393,7 @@ define <32 x i16> @test_masked_32xi16_perm_low_mem_mask1(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_low_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[1,1,3,3,4,5,6,7,9,9,11,11,12,13,14,15,17,17,19,19,20,21,22,23,25,25,27,27,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[1,1,3,3,4,5,6,7,9,9,11,11,12,13,14,15,17,17,19,19,20,21,22,23,25,25,27,27,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_low_mem_mask1:
|
|
|
|
@ -7412,7 +7412,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_low_mem_mask1(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_low_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[1,1,3,3,4,5,6,7,9,9,11,11,12,13,14,15,17,17,19,19,20,21,22,23,25,25,27,27,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[1,1,3,3,4,5,6,7,9,9,11,11,12,13,14,15,17,17,19,19,20,21,22,23,25,25,27,27,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_low_mem_mask1:
|
|
|
|
@ -7431,7 +7431,7 @@ define <32 x i16> @test_masked_32xi16_perm_high_mem_mask2(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_high_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,4,7,6,4,8,9,10,11,12,15,14,12,16,17,18,19,20,23,22,20,24,25,26,27,28,31,30,28] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,4,7,6,4,8,9,10,11,12,15,14,12,16,17,18,19,20,23,22,20,24,25,26,27,28,31,30,28] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_high_mem_mask2:
|
|
|
|
@ -7450,7 +7450,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask2(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_high_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,4,7,6,4,8,9,10,11,12,15,14,12,16,17,18,19,20,23,22,20,24,25,26,27,28,31,30,28] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,4,7,6,4,8,9,10,11,12,15,14,12,16,17,18,19,20,23,22,20,24,25,26,27,28,31,30,28] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_high_mem_mask2:
|
|
|
|
@ -7468,7 +7468,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask2(<32 x i16>* %vp, <32
|
|
|
|
|
define <32 x i16> @test_32xi16_perm_low_mem_mask3(<32 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi16_perm_low_mem_mask3:
|
|
|
|
@ -7483,7 +7483,7 @@ define <32 x i16> @test_masked_32xi16_perm_low_mem_mask3(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_low_mem_mask3:
|
|
|
|
@ -7502,7 +7502,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_low_mem_mask3(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_low_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[2,2,0,3,4,5,6,7,10,10,8,11,12,13,14,15,18,18,16,19,20,21,22,23,26,26,24,27,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_low_mem_mask3:
|
|
|
|
@ -7521,7 +7521,7 @@ define <32 x i16> @test_masked_32xi16_perm_high_mem_mask4(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_high_mem_mask4:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,7,4,6,5,8,9,10,11,15,12,14,13,16,17,18,19,23,20,22,21,24,25,26,27,31,28,30,29] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,7,4,6,5,8,9,10,11,15,12,14,13,16,17,18,19,23,20,22,21,24,25,26,27,31,28,30,29] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_high_mem_mask4:
|
|
|
|
@ -7540,7 +7540,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask4(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_high_mem_mask4:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,7,4,6,5,8,9,10,11,15,12,14,13,16,17,18,19,23,20,22,21,24,25,26,27,31,28,30,29] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,7,4,6,5,8,9,10,11,15,12,14,13,16,17,18,19,23,20,22,21,24,25,26,27,31,28,30,29] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_high_mem_mask4:
|
|
|
|
@ -7558,7 +7558,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask4(<32 x i16>* %vp, <32
|
|
|
|
|
define <32 x i16> @test_masked_32xi16_perm_low_mem_mask5(<32 x i16>* %vp, <32 x i16> %vec2, <32 x i16> %mask) {
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_low_mem_mask5:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm2 = mem[0,0,2,3,4,4,6,7,8,8,10,11,12,12,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm2 = mem[0,0,2,3,4,4,6,7,8,8,10,11,12,12,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vmovdqu16 %zmm2, %zmm0 {%k1} # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
@ -7579,7 +7579,7 @@ define <32 x i16> @test_masked_32xi16_perm_low_mem_mask5(<32 x i16>* %vp, <32 x
|
|
|
|
|
define <32 x i16> @test_masked_z_32xi16_perm_low_mem_mask5(<32 x i16>* %vp, <32 x i16> %mask) {
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_low_mem_mask5:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm1 = mem[0,0,2,3,4,4,6,7,8,8,10,11,12,12,14,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm1 = mem[0,0,2,3,4,4,6,7,8,8,10,11,12,12,14,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vmovdqu16 %zmm1, %zmm0 {%k1} {z} # sched: [1:0.50]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
@ -7600,7 +7600,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_low_mem_mask5(<32 x i16>* %vp, <32
|
|
|
|
|
define <32 x i16> @test_32xi16_perm_high_mem_mask6(<32 x i16>* %vp) {
|
|
|
|
|
; GENERIC-LABEL: test_32xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_32xi16_perm_high_mem_mask6:
|
|
|
|
@ -7615,7 +7615,7 @@ define <32 x i16> @test_masked_32xi16_perm_high_mem_mask6(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_high_mem_mask6:
|
|
|
|
@ -7634,7 +7634,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_high_mem_mask6(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_high_mem_mask6:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufhw {{.*#+}} zmm0 {%k1} {z} = mem[0,1,2,3,6,5,6,6,8,9,10,11,14,13,14,14,16,17,18,19,22,21,22,22,24,25,26,27,30,29,30,30] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_high_mem_mask6:
|
|
|
|
@ -7653,7 +7653,7 @@ define <32 x i16> @test_masked_32xi16_perm_low_mem_mask7(<32 x i16>* %vp, <32 x
|
|
|
|
|
; GENERIC-LABEL: test_masked_32xi16_perm_low_mem_mask7:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[3,1,3,0,4,5,6,7,11,9,11,8,12,13,14,15,19,17,19,16,20,21,22,23,27,25,27,24,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} = mem[3,1,3,0,4,5,6,7,11,9,11,8,12,13,14,15,19,17,19,16,20,21,22,23,27,25,27,24,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_32xi16_perm_low_mem_mask7:
|
|
|
|
@ -7672,7 +7672,7 @@ define <32 x i16> @test_masked_z_32xi16_perm_low_mem_mask7(<32 x i16>* %vp, <32
|
|
|
|
|
; GENERIC-LABEL: test_masked_z_32xi16_perm_low_mem_mask7:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmw %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[3,1,3,0,4,5,6,7,11,9,11,8,12,13,14,15,19,17,19,16,20,21,22,23,27,25,27,24,28,29,30,31] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshuflw {{.*#+}} zmm0 {%k1} {z} = mem[3,1,3,0,4,5,6,7,11,9,11,8,12,13,14,15,19,17,19,16,20,21,22,23,27,25,27,24,28,29,30,31] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test_masked_z_32xi16_perm_low_mem_mask7:
|
|
|
|
@ -8233,7 +8233,7 @@ define <8 x i32> @test2_masked_8xi32_perm_mem_mask0(<8 x i32>* %vp, <8 x i32> %v
|
|
|
|
|
; GENERIC-LABEL: test2_masked_8xi32_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[1,0,2,0,5,4,6,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[1,0,2,0,5,4,6,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_8xi32_perm_mem_mask0:
|
|
|
|
@ -8252,7 +8252,7 @@ define <8 x i32> @test2_masked_z_8xi32_perm_mem_mask0(<8 x i32>* %vp, <8 x i32>
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_8xi32_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[1,0,2,0,5,4,6,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[1,0,2,0,5,4,6,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_8xi32_perm_mem_mask0:
|
|
|
|
@ -8271,7 +8271,7 @@ define <8 x i32> @test2_masked_8xi32_perm_mem_mask1(<8 x i32>* %vp, <8 x i32> %v
|
|
|
|
|
; GENERIC-LABEL: test2_masked_8xi32_perm_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[0,3,2,0,4,7,6,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[0,3,2,0,4,7,6,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_8xi32_perm_mem_mask1:
|
|
|
|
@ -8290,7 +8290,7 @@ define <8 x i32> @test2_masked_z_8xi32_perm_mem_mask1(<8 x i32>* %vp, <8 x i32>
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_8xi32_perm_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[0,3,2,0,4,7,6,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[0,3,2,0,4,7,6,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_8xi32_perm_mem_mask1:
|
|
|
|
@ -8309,7 +8309,7 @@ define <8 x i32> @test2_masked_8xi32_perm_mem_mask2(<8 x i32>* %vp, <8 x i32> %v
|
|
|
|
|
; GENERIC-LABEL: test2_masked_8xi32_perm_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[3,2,3,1,7,6,7,5] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[3,2,3,1,7,6,7,5] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_8xi32_perm_mem_mask2:
|
|
|
|
@ -8328,7 +8328,7 @@ define <8 x i32> @test2_masked_z_8xi32_perm_mem_mask2(<8 x i32>* %vp, <8 x i32>
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_8xi32_perm_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[3,2,3,1,7,6,7,5] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[3,2,3,1,7,6,7,5] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_8xi32_perm_mem_mask2:
|
|
|
|
@ -8361,7 +8361,7 @@ define <8 x i32> @test2_masked_8xi32_perm_mem_mask3(<8 x i32>* %vp, <8 x i32> %v
|
|
|
|
|
; GENERIC-LABEL: test2_masked_8xi32_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm1, %ymm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[3,2,0,0,7,6,4,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} = mem[3,2,0,0,7,6,4,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_8xi32_perm_mem_mask3:
|
|
|
|
@ -8380,7 +8380,7 @@ define <8 x i32> @test2_masked_z_8xi32_perm_mem_mask3(<8 x i32>* %vp, <8 x i32>
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_8xi32_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %ymm0, %ymm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[3,2,0,0,7,6,4,4] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} ymm0 {%k1} {z} = mem[3,2,0,0,7,6,4,4] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_8xi32_perm_mem_mask3:
|
|
|
|
@ -8587,7 +8587,7 @@ define <16 x i32> @test2_masked_16xi32_perm_mem_mask0(<16 x i32>* %vp, <16 x i32
|
|
|
|
|
; GENERIC-LABEL: test2_masked_16xi32_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[1,0,1,3,5,4,5,7,9,8,9,11,13,12,13,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[1,0,1,3,5,4,5,7,9,8,9,11,13,12,13,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_16xi32_perm_mem_mask0:
|
|
|
|
@ -8606,7 +8606,7 @@ define <16 x i32> @test2_masked_z_16xi32_perm_mem_mask0(<16 x i32>* %vp, <16 x i
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_16xi32_perm_mem_mask0:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[1,0,1,3,5,4,5,7,9,8,9,11,13,12,13,15] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[1,0,1,3,5,4,5,7,9,8,9,11,13,12,13,15] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_16xi32_perm_mem_mask0:
|
|
|
|
@ -8625,7 +8625,7 @@ define <16 x i32> @test2_masked_16xi32_perm_mem_mask1(<16 x i32>* %vp, <16 x i32
|
|
|
|
|
; GENERIC-LABEL: test2_masked_16xi32_perm_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[1,0,0,2,5,4,4,6,9,8,8,10,13,12,12,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[1,0,0,2,5,4,4,6,9,8,8,10,13,12,12,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_16xi32_perm_mem_mask1:
|
|
|
|
@ -8644,7 +8644,7 @@ define <16 x i32> @test2_masked_z_16xi32_perm_mem_mask1(<16 x i32>* %vp, <16 x i
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_16xi32_perm_mem_mask1:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[1,0,0,2,5,4,4,6,9,8,8,10,13,12,12,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[1,0,0,2,5,4,4,6,9,8,8,10,13,12,12,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_16xi32_perm_mem_mask1:
|
|
|
|
@ -8663,7 +8663,7 @@ define <16 x i32> @test2_masked_16xi32_perm_mem_mask2(<16 x i32>* %vp, <16 x i32
|
|
|
|
|
; GENERIC-LABEL: test2_masked_16xi32_perm_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[2,0,1,2,6,4,5,6,10,8,9,10,14,12,13,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[2,0,1,2,6,4,5,6,10,8,9,10,14,12,13,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_16xi32_perm_mem_mask2:
|
|
|
|
@ -8682,7 +8682,7 @@ define <16 x i32> @test2_masked_z_16xi32_perm_mem_mask2(<16 x i32>* %vp, <16 x i
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_16xi32_perm_mem_mask2:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[2,0,1,2,6,4,5,6,10,8,9,10,14,12,13,14] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[2,0,1,2,6,4,5,6,10,8,9,10,14,12,13,14] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_16xi32_perm_mem_mask2:
|
|
|
|
@ -8715,7 +8715,7 @@ define <16 x i32> @test2_masked_16xi32_perm_mem_mask3(<16 x i32>* %vp, <16 x i32
|
|
|
|
|
; GENERIC-LABEL: test2_masked_16xi32_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm1, %zmm1, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[3,1,1,1,7,5,5,5,11,9,9,9,15,13,13,13] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} = mem[3,1,1,1,7,5,5,5,11,9,9,9,15,13,13,13] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_16xi32_perm_mem_mask3:
|
|
|
|
@ -8734,7 +8734,7 @@ define <16 x i32> @test2_masked_z_16xi32_perm_mem_mask3(<16 x i32>* %vp, <16 x i
|
|
|
|
|
; GENERIC-LABEL: test2_masked_z_16xi32_perm_mem_mask3:
|
|
|
|
|
; GENERIC: # %bb.0:
|
|
|
|
|
; GENERIC-NEXT: vptestnmd %zmm0, %zmm0, %k1 # sched: [1:0.33]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[3,1,1,1,7,5,5,5,11,9,9,9,15,13,13,13] sched: [6:1.00]
|
|
|
|
|
; GENERIC-NEXT: vpshufd {{.*#+}} zmm0 {%k1} {z} = mem[3,1,1,1,7,5,5,5,11,9,9,9,15,13,13,13] sched: [8:1.00]
|
|
|
|
|
; GENERIC-NEXT: retq # sched: [1:1.00]
|
|
|
|
|
;
|
|
|
|
|
; SKX-LABEL: test2_masked_z_16xi32_perm_mem_mask3:
|
|
|
|
|