[llvm] [llvm][NVPTX] Fix RAUW bug in NVPTXProxyRegErasure (PR #105871)

Artem Belevich via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 23 13:29:04 PDT 2024


================
@@ -23,3 +25,19 @@ define  <4 x i32> @check_vec_i32() {
   %ret = call <4 x i32> @callee_vec_i32()
   ret <4 x i32> %ret
 }
+
+; MIR: check_chained_proxy
+define void @check_chained_proxy(i8 %0) {
+  ; MIR: body:
+  ; MIR-BEFORE: %0:int32regs = ProxyRegI32 killed %4
+  %broadcast.splatinsert = insertelement <4 x i8> poison, i8 %0, i64 0
+  %broadcast.splat = shufflevector <4 x i8> %broadcast.splatinsert, <4 x i8> poison, <4 x i32> zeroinitializer
+  br label %vector.body
+
+vector.body:
+  ; MIR-BEFORE: %5:int32regs = ProxyRegI32 %0
----------------
Artem-B wrote:

It would be great to convert the test to pure MIR test.
I.e. dump MIR with `llc -print-before=nvptx-proxyreg-erasure` and then use `llc -run-pass=nvptx-proxyreg-erasure` on the MIR.

This will allow us to precisely construct MIR we want to test, instead of indirectly relying on IR to give us MIR which has relevant bits. 

https://github.com/llvm/llvm-project/pull/105871


More information about the llvm-commits mailing list