[Mlir-commits] [mlir] [mlir][memref][nfc] push early-exit to earlier (PR #140730)
Igor Zamyatin
llvmlistbot at llvm.org
Sat May 24 13:57:37 PDT 2025
Garra1980 wrote:
> It's not quite clear to me what is wrong 😅 Could you compare _before_ and _after_ IR? If _after_ is indeed incorrect, we should include your example as a test and revert this change.
Ah, my bad! You're right, before it was like this:
```
%memref_0 = gpu.alloc host_shared () : memref<2xi8>
%2 = builtin.unrealized_conversion_cast %memref_0 : memref<2xi8> to !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
%3 = llvm.mlir.poison : !llvm.struct<(ptr, ptr, i64)>
%4 = llvm.extractvalue %2[0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
%5 = llvm.insertvalue %4, %3[0] : !llvm.struct<(ptr, ptr, i64)>
%6 = llvm.extractvalue %2[1] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
%7 = llvm.getelementptr %6[%0] : (!llvm.ptr, i64) -> !llvm.ptr, i8
%8 = llvm.insertvalue %7, %5[1] : !llvm.struct<(ptr, ptr, i64)>
%9 = llvm.mlir.constant(0 : index) : i64
%10 = llvm.insertvalue %9, %8[2] : !llvm.struct<(ptr, ptr, i64)>
%11 = llvm.mlir.constant(1 : index) : i64
%12 = llvm.mlir.zero : !llvm.ptr
%13 = llvm.getelementptr %12[1] : (!llvm.ptr) -> !llvm.ptr, bf16
%14 = llvm.ptrtoint %13 : !llvm.ptr to i64
%15 = llvm.mul %11, %14 : i64
%16 = llvm.extractvalue %1[1] : !llvm.struct<(ptr, ptr, i64)>
%17 = llvm.extractvalue %1[2] : !llvm.struct<(ptr, ptr, i64)>
%18 = llvm.getelementptr %16[%17] : (!llvm.ptr, i64) -> !llvm.ptr, bf16
%19 = llvm.extractvalue %10[1] : !llvm.struct<(ptr, ptr, i64)>
%20 = llvm.extractvalue %10[2] : !llvm.struct<(ptr, ptr, i64)>
%21 = llvm.getelementptr %19[%20] : (!llvm.ptr, i64) -> !llvm.ptr, bf16
"llvm.intr.memcpy"(%21, %18, %15) <{isVolatile = false}> : (!llvm.ptr, !llvm.ptr, i64) -> ()
```
https://github.com/llvm/llvm-project/pull/140730
More information about the Mlir-commits
mailing list