Skip to content

Commit 7185dd6

Browse files
authored
[X86][AVX512] Add missing mayLoad attribute to AVX512 instructions (llvm#162036)
Fixes crashes reported in llvm#157034.
1 parent 5e92e7f commit 7185dd6

File tree

9 files changed

+105
-33
lines changed

9 files changed

+105
-33
lines changed

llvm/lib/Target/X86/X86InstrAVX512.td

Lines changed: 81 additions & 9 deletions
Large diffs are not rendered by default.

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vbmi2.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ vpshrdw $1, (%rax), %zmm17, %zmm19 {k1}{z}
153153
# CHECK-NEXT: 2 8 1.00 * vpcompressw %zmm16, (%rax) {%k1}
154154
# CHECK-NEXT: 1 1 1.00 vpcompressw %zmm16, %zmm19 {%k1} {z}
155155
# CHECK-NEXT: 1 1 1.00 U vpexpandb %zmm16, %zmm19
156-
# CHECK-NEXT: 2 8 1.00 U vpexpandb (%rax), %zmm19
156+
# CHECK-NEXT: 2 8 1.00 * U vpexpandb (%rax), %zmm19
157157
# CHECK-NEXT: 1 1 1.00 vpexpandb %zmm16, %zmm19 {%k1}
158158
# CHECK-NEXT: 2 8 1.00 * vpexpandb (%rax), %zmm19 {%k1}
159159
# CHECK-NEXT: 1 1 1.00 vpexpandb %zmm16, %zmm19 {%k1} {z}
160160
# CHECK-NEXT: 1 1 1.00 U vpexpandw %zmm16, %zmm19
161-
# CHECK-NEXT: 2 8 1.00 U vpexpandw (%rax), %zmm19
161+
# CHECK-NEXT: 2 8 1.00 * U vpexpandw (%rax), %zmm19
162162
# CHECK-NEXT: 1 1 1.00 vpexpandw %zmm16, %zmm19 {%k1}
163163
# CHECK-NEXT: 2 8 1.00 * vpexpandw (%rax), %zmm19 {%k1}
164164
# CHECK-NEXT: 1 1 1.00 vpexpandw %zmm16, %zmm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vbmi2vl.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,22 +295,22 @@ vpshrdw $1, (%rax), %ymm17, %ymm19 {k1}{z}
295295
# CHECK-NEXT: 2 8 1.00 * vpcompressw %ymm16, (%rax) {%k1}
296296
# CHECK-NEXT: 1 1 1.00 vpcompressw %ymm16, %ymm19 {%k1} {z}
297297
# CHECK-NEXT: 1 1 1.00 U vpexpandb %xmm16, %xmm19
298-
# CHECK-NEXT: 2 8 1.00 U vpexpandb (%rax), %xmm19
298+
# CHECK-NEXT: 2 8 1.00 * U vpexpandb (%rax), %xmm19
299299
# CHECK-NEXT: 1 1 1.00 vpexpandb %xmm16, %xmm19 {%k1}
300300
# CHECK-NEXT: 2 8 1.00 * vpexpandb (%rax), %xmm19 {%k1}
301301
# CHECK-NEXT: 1 1 1.00 vpexpandb %xmm16, %xmm19 {%k1} {z}
302302
# CHECK-NEXT: 1 1 1.00 U vpexpandb %ymm16, %ymm19
303-
# CHECK-NEXT: 2 8 1.00 U vpexpandb (%rax), %ymm19
303+
# CHECK-NEXT: 2 8 1.00 * U vpexpandb (%rax), %ymm19
304304
# CHECK-NEXT: 1 1 1.00 vpexpandb %ymm16, %ymm19 {%k1}
305305
# CHECK-NEXT: 2 8 1.00 * vpexpandb (%rax), %ymm19 {%k1}
306306
# CHECK-NEXT: 1 1 1.00 vpexpandb %ymm16, %ymm19 {%k1} {z}
307307
# CHECK-NEXT: 1 1 1.00 U vpexpandw %xmm16, %xmm19
308-
# CHECK-NEXT: 2 8 1.00 U vpexpandw (%rax), %xmm19
308+
# CHECK-NEXT: 2 8 1.00 * U vpexpandw (%rax), %xmm19
309309
# CHECK-NEXT: 1 1 1.00 vpexpandw %xmm16, %xmm19 {%k1}
310310
# CHECK-NEXT: 2 8 1.00 * vpexpandw (%rax), %xmm19 {%k1}
311311
# CHECK-NEXT: 1 1 1.00 vpexpandw %xmm16, %xmm19 {%k1} {z}
312312
# CHECK-NEXT: 1 1 1.00 U vpexpandw %ymm16, %ymm19
313-
# CHECK-NEXT: 2 8 1.00 U vpexpandw (%rax), %ymm19
313+
# CHECK-NEXT: 2 8 1.00 * U vpexpandw (%rax), %ymm19
314314
# CHECK-NEXT: 1 1 1.00 vpexpandw %ymm16, %ymm19 {%k1}
315315
# CHECK-NEXT: 2 8 1.00 * vpexpandw (%rax), %ymm19 {%k1}
316316
# CHECK-NEXT: 1 1 1.00 vpexpandw %ymm16, %ymm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vbmi2.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ vpshrdw $1, (%rax), %zmm17, %zmm19 {k1}{z}
153153
# CHECK-NEXT: 2 10 1.00 * vpcompressw %zmm16, (%rax) {%k1}
154154
# CHECK-NEXT: 1 3 1.00 vpcompressw %zmm16, %zmm19 {%k1} {z}
155155
# CHECK-NEXT: 1 3 1.00 U vpexpandb %zmm16, %zmm19
156-
# CHECK-NEXT: 2 10 1.00 U vpexpandb (%rax), %zmm19
156+
# CHECK-NEXT: 2 10 1.00 * U vpexpandb (%rax), %zmm19
157157
# CHECK-NEXT: 1 3 1.00 vpexpandb %zmm16, %zmm19 {%k1}
158158
# CHECK-NEXT: 2 10 1.00 * vpexpandb (%rax), %zmm19 {%k1}
159159
# CHECK-NEXT: 1 3 1.00 vpexpandb %zmm16, %zmm19 {%k1} {z}
160160
# CHECK-NEXT: 1 3 1.00 U vpexpandw %zmm16, %zmm19
161-
# CHECK-NEXT: 2 10 1.00 U vpexpandw (%rax), %zmm19
161+
# CHECK-NEXT: 2 10 1.00 * U vpexpandw (%rax), %zmm19
162162
# CHECK-NEXT: 1 3 1.00 vpexpandw %zmm16, %zmm19 {%k1}
163163
# CHECK-NEXT: 2 10 1.00 * vpexpandw (%rax), %zmm19 {%k1}
164164
# CHECK-NEXT: 1 3 1.00 vpexpandw %zmm16, %zmm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vbmi2vl.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,22 +295,22 @@ vpshrdw $1, (%rax), %ymm17, %ymm19 {k1}{z}
295295
# CHECK-NEXT: 2 10 1.00 * vpcompressw %ymm16, (%rax) {%k1}
296296
# CHECK-NEXT: 1 3 1.00 vpcompressw %ymm16, %ymm19 {%k1} {z}
297297
# CHECK-NEXT: 1 3 1.00 U vpexpandb %xmm16, %xmm19
298-
# CHECK-NEXT: 2 10 1.00 U vpexpandb (%rax), %xmm19
298+
# CHECK-NEXT: 2 10 1.00 * U vpexpandb (%rax), %xmm19
299299
# CHECK-NEXT: 1 3 1.00 vpexpandb %xmm16, %xmm19 {%k1}
300300
# CHECK-NEXT: 2 10 1.00 * vpexpandb (%rax), %xmm19 {%k1}
301301
# CHECK-NEXT: 1 3 1.00 vpexpandb %xmm16, %xmm19 {%k1} {z}
302302
# CHECK-NEXT: 1 3 1.00 U vpexpandb %ymm16, %ymm19
303-
# CHECK-NEXT: 2 10 1.00 U vpexpandb (%rax), %ymm19
303+
# CHECK-NEXT: 2 10 1.00 * U vpexpandb (%rax), %ymm19
304304
# CHECK-NEXT: 1 3 1.00 vpexpandb %ymm16, %ymm19 {%k1}
305305
# CHECK-NEXT: 2 10 1.00 * vpexpandb (%rax), %ymm19 {%k1}
306306
# CHECK-NEXT: 1 3 1.00 vpexpandb %ymm16, %ymm19 {%k1} {z}
307307
# CHECK-NEXT: 1 3 1.00 U vpexpandw %xmm16, %xmm19
308-
# CHECK-NEXT: 2 10 1.00 U vpexpandw (%rax), %xmm19
308+
# CHECK-NEXT: 2 10 1.00 * U vpexpandw (%rax), %xmm19
309309
# CHECK-NEXT: 1 3 1.00 vpexpandw %xmm16, %xmm19 {%k1}
310310
# CHECK-NEXT: 2 10 1.00 * vpexpandw (%rax), %xmm19 {%k1}
311311
# CHECK-NEXT: 1 3 1.00 vpexpandw %xmm16, %xmm19 {%k1} {z}
312312
# CHECK-NEXT: 1 3 1.00 U vpexpandw %ymm16, %ymm19
313-
# CHECK-NEXT: 2 10 1.00 U vpexpandw (%rax), %ymm19
313+
# CHECK-NEXT: 2 10 1.00 * U vpexpandw (%rax), %ymm19
314314
# CHECK-NEXT: 1 3 1.00 vpexpandw %ymm16, %ymm19 {%k1}
315315
# CHECK-NEXT: 2 10 1.00 * vpexpandw (%rax), %ymm19 {%k1}
316316
# CHECK-NEXT: 1 3 1.00 vpexpandw %ymm16, %ymm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/SapphireRapids/resources-avx512vbmi2.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ vpshrdw $1, (%rax), %zmm17, %zmm19 {k1}{z}
153153
# CHECK-NEXT: 6 14 2.00 * vpcompressw %zmm16, (%rax) {%k1}
154154
# CHECK-NEXT: 2 6 2.00 vpcompressw %zmm16, %zmm19 {%k1} {z}
155155
# CHECK-NEXT: 2 3 2.00 U vpexpandb %zmm16, %zmm19
156-
# CHECK-NEXT: 3 11 2.00 U vpexpandb (%rax), %zmm19
156+
# CHECK-NEXT: 3 11 2.00 * U vpexpandb (%rax), %zmm19
157157
# CHECK-NEXT: 2 8 2.00 vpexpandb %zmm16, %zmm19 {%k1}
158158
# CHECK-NEXT: 3 13 2.00 * vpexpandb (%rax), %zmm19 {%k1}
159159
# CHECK-NEXT: 2 8 2.00 vpexpandb %zmm16, %zmm19 {%k1} {z}
160160
# CHECK-NEXT: 2 3 2.00 U vpexpandw %zmm16, %zmm19
161-
# CHECK-NEXT: 3 11 2.00 U vpexpandw (%rax), %zmm19
161+
# CHECK-NEXT: 3 11 2.00 * U vpexpandw (%rax), %zmm19
162162
# CHECK-NEXT: 2 8 2.00 vpexpandw %zmm16, %zmm19 {%k1}
163163
# CHECK-NEXT: 3 13 2.00 * vpexpandw (%rax), %zmm19 {%k1}
164164
# CHECK-NEXT: 2 8 2.00 vpexpandw %zmm16, %zmm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/SapphireRapids/resources-avx512vbmi2vl.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,22 +295,22 @@ vpshrdw $1, (%rax), %ymm17, %ymm19 {k1}{z}
295295
# CHECK-NEXT: 6 14 2.00 * vpcompressw %ymm16, (%rax) {%k1}
296296
# CHECK-NEXT: 2 6 2.00 vpcompressw %ymm16, %ymm19 {%k1} {z}
297297
# CHECK-NEXT: 2 3 2.00 U vpexpandb %xmm16, %xmm19
298-
# CHECK-NEXT: 3 10 2.00 U vpexpandb (%rax), %xmm19
298+
# CHECK-NEXT: 3 10 2.00 * U vpexpandb (%rax), %xmm19
299299
# CHECK-NEXT: 2 8 2.00 vpexpandb %xmm16, %xmm19 {%k1}
300300
# CHECK-NEXT: 3 13 2.00 * vpexpandb (%rax), %xmm19 {%k1}
301301
# CHECK-NEXT: 2 8 2.00 vpexpandb %xmm16, %xmm19 {%k1} {z}
302302
# CHECK-NEXT: 2 3 2.00 U vpexpandb %ymm16, %ymm19
303-
# CHECK-NEXT: 3 11 2.00 U vpexpandb (%rax), %ymm19
303+
# CHECK-NEXT: 3 11 2.00 * U vpexpandb (%rax), %ymm19
304304
# CHECK-NEXT: 2 8 2.00 vpexpandb %ymm16, %ymm19 {%k1}
305305
# CHECK-NEXT: 3 13 2.00 * vpexpandb (%rax), %ymm19 {%k1}
306306
# CHECK-NEXT: 2 8 2.00 vpexpandb %ymm16, %ymm19 {%k1} {z}
307307
# CHECK-NEXT: 2 3 2.00 U vpexpandw %xmm16, %xmm19
308-
# CHECK-NEXT: 3 10 2.00 U vpexpandw (%rax), %xmm19
308+
# CHECK-NEXT: 3 10 2.00 * U vpexpandw (%rax), %xmm19
309309
# CHECK-NEXT: 2 8 2.00 vpexpandw %xmm16, %xmm19 {%k1}
310310
# CHECK-NEXT: 3 13 2.00 * vpexpandw (%rax), %xmm19 {%k1}
311311
# CHECK-NEXT: 2 8 2.00 vpexpandw %xmm16, %xmm19 {%k1} {z}
312312
# CHECK-NEXT: 2 3 2.00 U vpexpandw %ymm16, %ymm19
313-
# CHECK-NEXT: 3 11 2.00 U vpexpandw (%rax), %ymm19
313+
# CHECK-NEXT: 3 11 2.00 * U vpexpandw (%rax), %ymm19
314314
# CHECK-NEXT: 2 8 2.00 vpexpandw %ymm16, %ymm19 {%k1}
315315
# CHECK-NEXT: 3 13 2.00 * vpexpandw (%rax), %ymm19 {%k1}
316316
# CHECK-NEXT: 2 8 2.00 vpexpandw %ymm16, %ymm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ vpshrdw $1, (%rax), %zmm17, %zmm19 {k1}{z}
153153
# CHECK-NEXT: 2 8 0.50 * vpcompressw %zmm16, (%rax) {%k1}
154154
# CHECK-NEXT: 1 5 1.00 vpcompressw %zmm16, %zmm19 {%k1} {z}
155155
# CHECK-NEXT: 1 5 1.00 U vpexpandb %zmm16, %zmm19
156-
# CHECK-NEXT: 2 8 0.50 U vpexpandb (%rax), %zmm19
156+
# CHECK-NEXT: 2 8 0.50 * U vpexpandb (%rax), %zmm19
157157
# CHECK-NEXT: 1 5 1.00 vpexpandb %zmm16, %zmm19 {%k1}
158158
# CHECK-NEXT: 2 8 0.50 * vpexpandb (%rax), %zmm19 {%k1}
159159
# CHECK-NEXT: 1 5 1.00 vpexpandb %zmm16, %zmm19 {%k1} {z}
160160
# CHECK-NEXT: 1 5 1.00 U vpexpandw %zmm16, %zmm19
161-
# CHECK-NEXT: 2 8 0.50 U vpexpandw (%rax), %zmm19
161+
# CHECK-NEXT: 2 8 0.50 * U vpexpandw (%rax), %zmm19
162162
# CHECK-NEXT: 1 5 1.00 vpexpandw %zmm16, %zmm19 {%k1}
163163
# CHECK-NEXT: 2 8 0.50 * vpexpandw (%rax), %zmm19 {%k1}
164164
# CHECK-NEXT: 1 5 1.00 vpexpandw %zmm16, %zmm19 {%k1} {z}

llvm/test/tools/llvm-mca/X86/Znver4/resources-avx512vbmi2vl.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,22 +295,22 @@ vpshrdw $1, (%rax), %ymm17, %ymm19 {k1}{z}
295295
# CHECK-NEXT: 2 8 0.50 * vpcompressw %ymm16, (%rax) {%k1}
296296
# CHECK-NEXT: 1 4 1.00 vpcompressw %ymm16, %ymm19 {%k1} {z}
297297
# CHECK-NEXT: 2 1 0.50 U vpexpandb %xmm16, %xmm19
298-
# CHECK-NEXT: 2 8 0.50 U vpexpandb (%rax), %xmm19
298+
# CHECK-NEXT: 2 8 0.50 * U vpexpandb (%rax), %xmm19
299299
# CHECK-NEXT: 2 1 0.50 vpexpandb %xmm16, %xmm19 {%k1}
300300
# CHECK-NEXT: 2 8 0.50 * vpexpandb (%rax), %xmm19 {%k1}
301301
# CHECK-NEXT: 2 1 0.50 vpexpandb %xmm16, %xmm19 {%k1} {z}
302302
# CHECK-NEXT: 1 4 1.00 U vpexpandb %ymm16, %ymm19
303-
# CHECK-NEXT: 2 8 0.50 U vpexpandb (%rax), %ymm19
303+
# CHECK-NEXT: 2 8 0.50 * U vpexpandb (%rax), %ymm19
304304
# CHECK-NEXT: 1 4 1.00 vpexpandb %ymm16, %ymm19 {%k1}
305305
# CHECK-NEXT: 2 8 0.50 * vpexpandb (%rax), %ymm19 {%k1}
306306
# CHECK-NEXT: 1 4 1.00 vpexpandb %ymm16, %ymm19 {%k1} {z}
307307
# CHECK-NEXT: 2 1 0.50 U vpexpandw %xmm16, %xmm19
308-
# CHECK-NEXT: 2 8 0.50 U vpexpandw (%rax), %xmm19
308+
# CHECK-NEXT: 2 8 0.50 * U vpexpandw (%rax), %xmm19
309309
# CHECK-NEXT: 2 1 0.50 vpexpandw %xmm16, %xmm19 {%k1}
310310
# CHECK-NEXT: 2 8 0.50 * vpexpandw (%rax), %xmm19 {%k1}
311311
# CHECK-NEXT: 2 1 0.50 vpexpandw %xmm16, %xmm19 {%k1} {z}
312312
# CHECK-NEXT: 1 4 1.00 U vpexpandw %ymm16, %ymm19
313-
# CHECK-NEXT: 2 8 0.50 U vpexpandw (%rax), %ymm19
313+
# CHECK-NEXT: 2 8 0.50 * U vpexpandw (%rax), %ymm19
314314
# CHECK-NEXT: 1 4 1.00 vpexpandw %ymm16, %ymm19 {%k1}
315315
# CHECK-NEXT: 2 8 0.50 * vpexpandw (%rax), %ymm19 {%k1}
316316
# CHECK-NEXT: 1 4 1.00 vpexpandw %ymm16, %ymm19 {%k1} {z}

0 commit comments

Comments
 (0)