llvm-project
44df9826 - [InstCombine] Propagate invariant.load metadata across unpacked loads (#152186)

Commit
51 days ago
[InstCombine] Propagate invariant.load metadata across unpacked loads (#152186) For loads that operate on aggregate type, instcombine unpacks the loads. It does not preserve the invariant.load metadata. This patch fixes that, it looks for the metadata in the parent load and attaches the metadata to the unpacked loads. ``` %struct.double2 = type { double, double } %struct.double1 = type { double } define %struct.double2 @func1(ptr %a) { %1 = load %struct.double2, ptr %a, align 16, !invariant.load !1 ret %struct.double2 %1 } !1 = !{} ``` Reproducer: https://godbolt.org/z/hcY8MMvYh
Parents
Loading