[AMDGPU] Precommit test for issue in amdgpu-rewrite-agpr-copy-mfma,#168609
Merged
[AMDGPU] Precommit test for issue in amdgpu-rewrite-agpr-copy-mfma,#168609
Conversation
which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck.
Member
|
@llvm/pr-subscribers-backend-amdgpu Author: None (hjagasiaAMD) Changeswhich reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck. Patch is 490.57 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/168609.diff 1 Files Affected:
diff --git a/llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-scale-to-agpr.mir b/llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-scale-to-agpr.mir
new file mode 100644
index 0000000000000..d8bc90275d6b4
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-scale-to-agpr.mir
@@ -0,0 +1,6793 @@
+# RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -run-pass=greedy,amdgpu-rewrite-agpr-copy-mfma -verify-machineinstrs -o - %s 2>&1 | FileCheck %s
+# CHECK: Illegal virtual register for instruction
+# CHECK: Expected a VGPR_32 register, but got a AGPR_32 register
+
+# Test for issue in amdgpu-rewrite-agpr-copy-mfma, which reassigns scale operand
+# in vgpr_32 register to agpr_32, not permitted by instruction format.
+--- |
+ define amdgpu_kernel void @test() #0 {
+ entry:
+ unreachable
+ }
+ attributes #0 = { "amdgpu-flat-work-group-size"="1,256" }
+...
+---
+name: test
+tracksRegLiveness: true
+registers:
+ - { id: 0, class: sreg_64, preferred-register: '', flags: [ ] }
+ - { id: 1, class: sgpr_128, preferred-register: '', flags: [ ] }
+ - { id: 2, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 3, class: sreg_64, preferred-register: '', flags: [ ] }
+ - { id: 4, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 5, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 6, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 7, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 8, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 9, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 10, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 11, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 12, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 13, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 14, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 15, class: sgpr_128, preferred-register: '', flags: [ ] }
+ - { id: 16, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 17, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 18, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 19, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 20, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 21, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 22, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 23, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 24, class: sreg_64, preferred-register: '', flags: [ ] }
+ - { id: 25, class: sreg_64, preferred-register: '', flags: [ ] }
+ - { id: 26, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 27, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 28, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 29, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 30, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 31, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 32, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 33, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 34, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 35, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 36, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 37, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 38, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 39, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 40, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 41, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 42, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 43, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 44, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 45, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 46, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 47, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 48, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 49, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 50, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 51, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 52, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 53, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 54, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 55, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 56, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 57, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 58, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 59, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 60, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 61, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 62, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 63, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 64, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 65, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 66, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 67, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 68, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 69, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 70, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 71, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 72, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 73, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 74, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 75, class: sreg_32, preferred-register: '', flags: [ ] }
+ - { id: 76, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 77, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 78, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 79, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 80, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 81, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 82, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 83, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 84, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 85, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 86, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 87, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 88, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 89, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 90, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 91, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 92, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 93, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 94, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 95, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 96, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 97, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 98, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 99, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 100, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 101, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 102, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 103, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 104, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 105, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 106, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 107, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 108, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 109, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 110, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 111, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 112, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 113, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 114, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 115, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 116, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 117, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 118, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 119, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 120, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 121, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 122, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 123, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 124, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 125, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 126, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 127, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 128, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 129, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 130, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 131, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 132, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 133, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 134, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 135, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 136, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 137, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 138, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 139, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 140, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 141, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 142, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 143, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 144, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 145, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 146, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 147, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 148, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 149, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 150, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 151, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 152, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 153, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 154, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 155, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 156, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 157, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 158, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 159, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 160, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 161, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 162, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 163, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 164, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 165, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 166, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 167, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 168, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 169, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 170, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 171, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 172, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 173, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 174, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 175, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 176, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 177, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 178, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 179, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 180, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 181, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 182, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 183, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 184, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 185, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 186, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 187, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 188, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 189, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 190, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 191, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 192, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 193, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 194, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 195, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 196, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 197, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 198, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 199, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 200, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 201, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 202, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 203, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 204, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 205, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 206, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 207, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 208, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 209, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 210, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 211, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 212, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 213, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 214, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 215, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 216, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 217, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 218, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 219, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 220, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 221, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 222, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 223, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 224, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 225, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 226, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 227, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 228, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 229, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 230, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 231, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 232, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 233, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 234, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 235, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 236, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 237, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 238, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 239, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 240, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 241, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 242, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 243, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 244, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 245, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 246, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 247, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 248, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 249, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 250, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 251, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 252, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 253, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 254, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 255, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 256, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 257, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 258, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 259, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 260, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 261, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 262, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 263, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 264, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 265, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 266, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 267, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 268, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 269, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 270, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 271, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 272, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 273, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 274, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 275, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 276, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 277, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 278, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 279, class: vgpr_32, preferred-register: '', flags: [ ] }
+ - { id: 280, class: vgpr_32, preferred-register: '', f...
[truncated]
|
arsenm
reviewed
Nov 18, 2025
🐧 Linux x64 Test Results
|
arsenm
reviewed
Nov 19, 2025
Contributor
arsenm
left a comment
There was a problem hiding this comment.
Test is still really big, but it's very difficult to shrink these. Can at least fix a few of the weird reduction artifacts
| # in vgpr_32 register to agpr_32, not permitted by instruction format. | ||
| --- | | ||
| define amdgpu_kernel void @test() #0 { | ||
| entry: |
| %152:vreg_128_align2 = COPY %82 | ||
| %153:vreg_128_align2 = V_MFMA_SCALE_F32_16X16X128_F8F6F4_f4_f4_vgprcd_e64 undef %111, undef %14, %149, 4, 4, undef %35, undef %28, 8, 12, implicit $mode, implicit $exec | ||
| %20:av_128_align2 = IMPLICIT_DEF | ||
| %154:vreg_128_align2 = V_MFMA_SCALE_F32_16X16X128_F8F6F4_f4_f4_vgprcd_e64 undef %111, undef %14, %151, 4, 4, %35, undef %101, 8, 8, implicit $mode, implicit $exec |
Contributor
There was a problem hiding this comment.
I assume this came out of llvm-reduce? Can you fix all of these undef flags on operands that really do have definitions?
ronlieb
approved these changes
Nov 20, 2025
arsenm
approved these changes
Nov 20, 2025
arsenm
reviewed
Nov 20, 2025
Co-authored-by: Matt Arsenault <arsenm2@gmail.com>
arsenm
approved these changes
Nov 20, 2025
googlewalt
added a commit
to googlewalt/llvm-project
that referenced
this pull request
Nov 21, 2025
googlewalt
added a commit
that referenced
this pull request
Nov 21, 2025
aadeshps-mcw
pushed a commit
to aadeshps-mcw/llvm-project
that referenced
this pull request
Nov 26, 2025
…lvm#168609) which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck. --------- Co-authored-by: Matt Arsenault <arsenm2@gmail.com> Co-authored-by: theRonShark <ron.lieberman@amd.com>
aadeshps-mcw
pushed a commit
to aadeshps-mcw/llvm-project
that referenced
this pull request
Nov 26, 2025
Priyanshu3820
pushed a commit
to Priyanshu3820/llvm-project
that referenced
this pull request
Nov 26, 2025
…lvm#168609) which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck. --------- Co-authored-by: Matt Arsenault <arsenm2@gmail.com> Co-authored-by: theRonShark <ron.lieberman@amd.com>
Priyanshu3820
pushed a commit
to Priyanshu3820/llvm-project
that referenced
this pull request
Nov 26, 2025
augusto2112
pushed a commit
to augusto2112/llvm-project
that referenced
this pull request
Dec 3, 2025
…lvm#168609) which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck. --------- Co-authored-by: Matt Arsenault <arsenm2@gmail.com> Co-authored-by: theRonShark <ron.lieberman@amd.com>
augusto2112
pushed a commit
to augusto2112/llvm-project
that referenced
this pull request
Dec 3, 2025
hjagasiaAMD
pushed a commit
to ROCm/llvm-project
that referenced
this pull request
Dec 11, 2025
…lvm#168609) which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
which reassigns scale operand in vgpr_32 register to agpr_32, not permitted by instruction format. Reduced from ck.