@@ -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