@@ -1747,29 +1747,27 @@ define <8 x i32> @gather_v8i32_v8i32(<8 x i32> %trigger) {
1747
1747
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k0
1748
1748
; AVX512F-NEXT: kshiftlw $8, %k0, %k0
1749
1749
; AVX512F-NEXT: kshiftrw $8, %k0, %k1
1750
- ; AVX512F-NEXT: vpbroadcastd {{.*#+}} zmm0 = [12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12]
1750
+ ; AVX512F-NEXT: vpxor %xmm0, %xmm0, %xmm0
1751
1751
; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
1752
- ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
1753
1752
; AVX512F-NEXT: kmovw %k1, %k2
1754
- ; AVX512F-NEXT: vpgatherdd c(,%zmm0), %zmm2 {%k2}
1755
- ; AVX512F-NEXT: vpbroadcastd {{.*#+}} zmm0 = [28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28]
1756
- ; AVX512F-NEXT: vpgatherdd c(,%zmm0), %zmm1 {%k1}
1757
- ; AVX512F-NEXT: vpaddd %ymm1 , %ymm2 , %ymm0
1758
- ; AVX512F-NEXT: vpaddd %ymm1 , %ymm0, %ymm0
1753
+ ; AVX512F-NEXT: vpgatherdd c+12 (,%zmm0), %zmm1 {%k2}
1754
+ ; AVX512F-NEXT: vpxor %xmm2, %xmm2, %xmm2
1755
+ ; AVX512F-NEXT: vpgatherdd c+28 (,%zmm0), %zmm2 {%k1}
1756
+ ; AVX512F-NEXT: vpaddd %ymm2 , %ymm1 , %ymm0
1757
+ ; AVX512F-NEXT: vpaddd %ymm2 , %ymm0, %ymm0
1759
1758
; AVX512F-NEXT: retq
1760
1759
;
1761
1760
; AVX512VL-LABEL: gather_v8i32_v8i32:
1762
1761
; AVX512VL: # %bb.0:
1763
1762
; AVX512VL-NEXT: vptestnmd %ymm0, %ymm0, %k1
1764
1763
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
1765
- ; AVX512VL-NEXT: vpbroadcastd {{.*#+}} ymm1 = [12,12,12,12,12,12,12,12]
1766
1764
; AVX512VL-NEXT: kmovw %k1, %k2
1765
+ ; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
1766
+ ; AVX512VL-NEXT: vpgatherdd c+12(,%ymm0), %ymm1 {%k2}
1767
1767
; AVX512VL-NEXT: vpxor %xmm2, %xmm2, %xmm2
1768
- ; AVX512VL-NEXT: vpgatherdd c(,%ymm1), %ymm2 {%k2}
1769
- ; AVX512VL-NEXT: vpbroadcastd {{.*#+}} ymm1 = [28,28,28,28,28,28,28,28]
1770
- ; AVX512VL-NEXT: vpgatherdd c(,%ymm1), %ymm0 {%k1}
1771
- ; AVX512VL-NEXT: vpaddd %ymm0, %ymm2, %ymm1
1772
- ; AVX512VL-NEXT: vpaddd %ymm0, %ymm1, %ymm0
1768
+ ; AVX512VL-NEXT: vpgatherdd c+28(,%ymm0), %ymm2 {%k1}
1769
+ ; AVX512VL-NEXT: vpaddd %ymm2, %ymm1, %ymm0
1770
+ ; AVX512VL-NEXT: vpaddd %ymm2, %ymm0, %ymm0
1773
1771
; AVX512VL-NEXT: retq
1774
1772
%1 = icmp eq <8 x i32 > %trigger , zeroinitializer
1775
1773
%2 = call <8 x i32 > @llvm.masked.gather.v8i32.v8p0 (<8 x ptr > getelementptr (%struct.a , <8 x ptr > <ptr @c , ptr @c , ptr @c , ptr @c , ptr @c , ptr @c , ptr @c , ptr @c >, <8 x i64 > zeroinitializer , i32 0 , <8 x i64 > <i64 3 , i64 3 , i64 3 , i64 3 , i64 3 , i64 3 , i64 3 , i64 3 >), i32 4 , <8 x i1 > %1 , <8 x i32 > undef )
0 commit comments