Issue 61468
Summary [AMDGPU][GlobalISel] illegal VGPR to SGPR copy
Labels backend:AMDGPU, globalisel
Assignees
Reporter chenzheng1030
    Still from https://reviews.llvm.org/D141247, some unexpected changes:

td changes:
```
diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td
index c10bbe7367a1..9117710a1aa9 100644
--- a/llvm/lib/Target/AMDGPU/SIInstructions.td
+++ b/llvm/lib/Target/AMDGPU/SIInstructions.td
@@ -2011,13 +2011,13 @@ def : GCNPat <
 def : GCNPat <
   (i32 (sext i1:$src0)),
 (V_CNDMASK_B32_e64 /*src0mod*/(i32 0), /*src0*/(i32 0),
- /*src1mod*/(i32 0), /*src1*/(i32 -1), $src0)
+ /*src1mod*/(i32 0), /*src1*/(i32 -1), i1:$src0)
 >;

 class Ext32Pat <SDNode ext> : GCNPat <
   (i32 (ext i1:$src0)),
   (V_CNDMASK_B32_e64 /*src0mod*/(i32 0), /*src0*/(i32 0),
-                     /*src1mod*/(i32 0), /*src1*/(i32 1), $src0)
+                     /*src1mod*/(i32 0), /*src1*/(i32 1), i1:$src0)
 >;

 def : Ext32Pat <zext>;
```

Get some LIT failures and some of them are not just code gen difference, for example for below case `s_ssubsat_i128` in file `CodeGen/AMDGPU/GlobalISel/ssubsat.ll`,
```
define amdgpu_ps i128 @s_ssubsat_i128(i128 inreg %lhs, i128 inreg %rhs) {
  %result = call i128 @llvm.ssub.sat.i128(i128 %lhs, i128 %rhs)
  ret i128 %result
}
declare i128 @llvm.ssub.sat.i128(i128, i128) #0
```

```
./bin/llc ssubsat.ll  -global-isel -mtriple=amdgcn-amd-amdpal -mcpu=tahiti
error: <unknown>:0:0: in function s_ssubsat_i128 i128 (i128, i128): illegal VGPR to SGPR copy

error: <unknown>:0:0: in function s_ssubsat_i128 i128 (i128, i128): illegal VGPR to SGPR copy
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to