[llvm] [DirectX] Bug fix for Data Scalarization crash (PR #118426)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 16 12:25:43 PST 2024


================
@@ -33,18 +32,13 @@ define <4 x i32> @load_array_vec_test() #0 {
 ; CHECK-NEXT:    [[TMP6:%.*]] = load i32, ptr addrspace(3) [[TMP5]], align 4
 ; CHECK-NEXT:    [[TMP7:%.*]] = bitcast ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 3) to ptr addrspace(3)
 ; CHECK-NEXT:    [[TMP8:%.*]] = load i32, ptr addrspace(3) [[TMP7]], align 4
-; CHECK-NEXT:    [[TMP9:%.*]] = bitcast ptr addrspace(3) @arrayofVecData.scalarized.1dim to ptr addrspace(3)
-; CHECK-NEXT:    [[TMP10:%.*]] = getelementptr [2 x [3 x float]], ptr addrspace(3) [[TMP9]], i32 0, i32 1
----------------
farzonl wrote:

This is one of the bugs from `convertUsersOfConstantsToInstructions`. It would split the bitcast from the GEP, but then we would never visit the GEP and so the GEP type never got flattened.

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


More information about the llvm-commits mailing list