@@ -168,14 +168,14 @@ struct Derived : BFields {
168168// CHECK-NEXT: [[TMP1:%.*]] = load double, ptr [[GEP1]], align 8
169169// CHECK-NEXT: [[CONV:%.*]] = fptosi double [[TMP1]] to i32
170170// CHECK-NEXT: [[TMP2:%.*]] = insertelement <4 x i32> [[TMP0]], i32 [[CONV]], i64 0
171+ // CHECK-NEXT: [[TMP3:%.*]] = load float, ptr [[GEP2]], align 4
172+ // CHECK-NEXT: [[CONV4:%.*]] = fptosi float [[TMP3]] to i32
173+ // CHECK-NEXT: [[TMP4:%.*]] = insertelement <4 x i32> [[TMP2]], i32 [[CONV4]], i64 1
171174// CHECK-NEXT: [[BF_LOAD:%.*]] = load i24, ptr [[E]], align 1
172175// CHECK-NEXT: [[BF_SHL:%.*]] = shl i24 [[BF_LOAD]], 9
173176// CHECK-NEXT: [[BF_ASHR:%.*]] = ashr i24 [[BF_SHL]], 9
174177// CHECK-NEXT: [[BF_CAST:%.*]] = sext i24 [[BF_ASHR]] to i32
175- // CHECK-NEXT: [[TMP3:%.*]] = insertelement <4 x i32> [[TMP2]], i32 [[BF_CAST]], i64 1
176- // CHECK-NEXT: [[TMP4:%.*]] = load float, ptr [[GEP2]], align 4
177- // CHECK-NEXT: [[CONV4:%.*]] = fptosi float [[TMP4]] to i32
178- // CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x i32> [[TMP3]], i32 [[CONV4]], i64 2
178+ // CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x i32> [[TMP4]], i32 [[BF_CAST]], i64 2
179179// CHECK-NEXT: [[TMP6:%.*]] = load i32, ptr [[GEP3]], align 4
180180// CHECK-NEXT: [[TMP7:%.*]] = insertelement <4 x i32> [[TMP5]], i32 [[TMP6]], i64 3
181181// CHECK-NEXT: store <4 x i32> [[TMP7]], ptr [[A]], align 4
@@ -186,31 +186,31 @@ void call4(Derived D) {
186186}
187187
188188// CHECK-LABEL: define hidden noundef nofpclass(nan inf) <4 x float> @_Z5call5Dv4_f(
189- // CHECK-SAME: <4 x float> noundef nofpclass(nan inf) [[M :%.*]]) #[[ATTR0]] {
189+ // CHECK-SAME: <4 x float> noundef nofpclass(nan inf) [[V :%.*]]) #[[ATTR0]] {
190190// CHECK-NEXT: [[ENTRY:.*:]]
191- // CHECK-NEXT: [[M_ADDR :%.*]] = alloca <4 x float>, align 16
192- // CHECK-NEXT: [[M2 :%.*]] = alloca [4 x float], align 4
191+ // CHECK-NEXT: [[V_ADDR :%.*]] = alloca <4 x float>, align 16
192+ // CHECK-NEXT: [[M :%.*]] = alloca [4 x float], align 4
193193// CHECK-NEXT: [[HLSL_EWCAST_SRC:%.*]] = alloca <4 x float>, align 16
194194// CHECK-NEXT: [[FLATCAST_TMP:%.*]] = alloca <4 x float>, align 4
195- // CHECK-NEXT: store <4 x float> [[M ]], ptr [[M_ADDR ]], align 16
196- // CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[M_ADDR ]], align 16
195+ // CHECK-NEXT: store <4 x float> [[V ]], ptr [[V_ADDR ]], align 16
196+ // CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[V_ADDR ]], align 16
197197// CHECK-NEXT: store <4 x float> [[TMP0]], ptr [[HLSL_EWCAST_SRC]], align 16
198198// CHECK-NEXT: [[VECTOR_GEP:%.*]] = getelementptr inbounds <4 x float>, ptr [[HLSL_EWCAST_SRC]], i32 0
199199// CHECK-NEXT: [[TMP1:%.*]] = load <4 x float>, ptr [[FLATCAST_TMP]], align 4
200200// CHECK-NEXT: [[TMP2:%.*]] = load <4 x float>, ptr [[VECTOR_GEP]], align 16
201201// CHECK-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP2]], i32 0
202202// CHECK-NEXT: [[TMP3:%.*]] = insertelement <4 x float> [[TMP1]], float [[VECEXT]], i64 0
203203// CHECK-NEXT: [[TMP4:%.*]] = load <4 x float>, ptr [[VECTOR_GEP]], align 16
204- // CHECK-NEXT: [[VECEXT1:%.*]] = extractelement <4 x float> [[TMP4]], i32 1
204+ // CHECK-NEXT: [[VECEXT1:%.*]] = extractelement <4 x float> [[TMP4]], i32 2
205205// CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP3]], float [[VECEXT1]], i64 1
206206// CHECK-NEXT: [[TMP6:%.*]] = load <4 x float>, ptr [[VECTOR_GEP]], align 16
207- // CHECK-NEXT: [[VECEXT2:%.*]] = extractelement <4 x float> [[TMP6]], i32 2
207+ // CHECK-NEXT: [[VECEXT2:%.*]] = extractelement <4 x float> [[TMP6]], i32 1
208208// CHECK-NEXT: [[TMP7:%.*]] = insertelement <4 x float> [[TMP5]], float [[VECEXT2]], i64 2
209209// CHECK-NEXT: [[TMP8:%.*]] = load <4 x float>, ptr [[VECTOR_GEP]], align 16
210210// CHECK-NEXT: [[VECEXT3:%.*]] = extractelement <4 x float> [[TMP8]], i32 3
211211// CHECK-NEXT: [[TMP9:%.*]] = insertelement <4 x float> [[TMP7]], float [[VECEXT3]], i64 3
212- // CHECK-NEXT: store <4 x float> [[TMP9]], ptr [[M2 ]], align 4
213- // CHECK-NEXT: [[TMP10:%.*]] = load <4 x float>, ptr [[M2 ]], align 4
212+ // CHECK-NEXT: store <4 x float> [[TMP9]], ptr [[M ]], align 4
213+ // CHECK-NEXT: [[TMP10:%.*]] = load <4 x float>, ptr [[M ]], align 4
214214// CHECK-NEXT: ret <4 x float> [[TMP10]]
215215//
216216float2x2 call5 (float4 v) {
0 commit comments