Open
Description
Thanks to @pow2clk it came to my attention that there are alloca and global variables of arrays of vectors that remain after data scalarization, array flattening, and scalarization passes when compiling several DML shaders.
These allocas and global variables appear to be used by memcpy
intrinsics.
Example:
@outputStrides = external addrspace(2) global [2 x <4 x i32>], align 16
...
define void @CSMain() local_unnamed_addr #2 {
%1 = alloca [2 x <4 x i32>], align 16
...
call void @llvm.memcpy.p0.p2.i32(ptr noundef nonnull align 16 dereferenceable(32) %1, ptr addrspace(2) noundef align 16 dereferenceable(32) @outputStrides, i32 32, i1 false)
Reproduction (thanks to @farzonl): https://godbolt.org/z/dWY9YbME1
Metadata
Metadata
Assignees
Type
Projects
Status
Active