The code in SelectionDAG did not handle the case where the
register type and output types were different, but had the same size.
Details
Details
Diff Detail
Diff Detail
- Repository
 - rL LLVM
 
Event Timeline
| test/CodeGen/AMDGPU/inline-asm.ll | ||
|---|---|---|
| 50 ↗ | (On Diff #49993) | Shouldn't this have an i1 return type?  | 
| test/CodeGen/AMDGPU/inline-asm.ll | ||
|---|---|---|
| 50 ↗ | (On Diff #49993) | No, this test case comes from an inline asm implementation of hsail's activelanemask. I need to return a mask containing the true/false values for each thread. If I use i1, I will need to sign extend the value in order to store it, and I will get either 0 or -1 instead of the lane mask.  | 
| test/CodeGen/AMDGPU/inline-asm.ll | ||
|---|---|---|
| 50 ↗ | (On Diff #49993) | Should probably add another testcase where it does use i1 then  | 
| test/CodeGen/AMDGPU/inline-asm.ll | ||
|---|---|---|
| 50 ↗ | (On Diff #49993) | There is a different bug that prevents the i1 test from working, so I'll attach the test case to the fix for that bug.  | 
Comment Actions
Looks reasonable. Can you comment the function a bit as well so that the logic is more clear? (And commit when you've done so)
Thanks!
-eric