@@ -155,20 +155,21 @@ entry:
155155 ret float %r
156156}
157157
158- define float @fadd_f32_strict (<4 x float > %vec ) #0 {
158+ define float @fadd_f32_strict (float %param , <4 x float > %vec ) #0 {
159159; CHECK-LABEL: define float @fadd_f32_strict(
160- ; CHECK-SAME: <4 x float> [[VEC:%.*]]) #[[ATTR1]] {
160+ ; CHECK-SAME: float [[PARAM:%.*]], <4 x float> [[VEC:%.*]]) #[[ATTR1]] {
161161; CHECK-NEXT: [[ENTRY:.*:]]
162- ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i32>, ptr @__msan_param_tls, align 8
162+ ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr @__msan_param_tls, align 8
163+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i32>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 8) to ptr), align 8
163164; CHECK-NEXT: call void @llvm.donothing()
164165; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vector.reduce.or.v4i32(<4 x i32> [[TMP0]])
165- ; CHECK-NEXT: [[TMP2:%.*]] = or i32 -1 , [[TMP1]]
166- ; CHECK-NEXT: [[R:%.*]] = call float @llvm.vector.reduce.fadd.v4f32(float undef , <4 x float> [[VEC]])
166+ ; CHECK-NEXT: [[TMP2:%.*]] = or i32 [[TMP3]] , [[TMP1]]
167+ ; CHECK-NEXT: [[R:%.*]] = call float @llvm.vector.reduce.fadd.v4f32(float [[PARAM]] , <4 x float> [[VEC]])
167168; CHECK-NEXT: store i32 [[TMP2]], ptr @__msan_retval_tls, align 8
168169; CHECK-NEXT: ret float [[R]]
169170;
170171entry:
171- %r = call float @llvm.vector.reduce.fadd.f32.v4f32 (float undef , <4 x float > %vec )
172+ %r = call float @llvm.vector.reduce.fadd.f32.v4f32 (float %param , <4 x float > %vec )
172173 ret float %r
173174}
174175
@@ -225,20 +226,21 @@ entry:
225226 ret float %r
226227}
227228
228- define float @fmul_f32_strict (<4 x float > %vec ) #0 {
229+ define float @fmul_f32_strict (float %param , <4 x float > %vec ) #0 {
229230; CHECK-LABEL: define float @fmul_f32_strict(
230- ; CHECK-SAME: <4 x float> [[VEC:%.*]]) #[[ATTR1]] {
231+ ; CHECK-SAME: float [[PARAM:%.*]], <4 x float> [[VEC:%.*]]) #[[ATTR1]] {
231232; CHECK-NEXT: [[ENTRY:.*:]]
232- ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i32>, ptr @__msan_param_tls, align 8
233+ ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr @__msan_param_tls, align 8
234+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i32>, ptr inttoptr (i64 add (i64 ptrtoint (ptr @__msan_param_tls to i64), i64 8) to ptr), align 8
233235; CHECK-NEXT: call void @llvm.donothing()
234236; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vector.reduce.or.v4i32(<4 x i32> [[TMP0]])
235- ; CHECK-NEXT: [[TMP2:%.*]] = or i32 -1 , [[TMP1]]
236- ; CHECK-NEXT: [[R:%.*]] = call float @llvm.vector.reduce.fmul.v4f32(float undef , <4 x float> [[VEC]])
237+ ; CHECK-NEXT: [[TMP2:%.*]] = or i32 [[TMP3]] , [[TMP1]]
238+ ; CHECK-NEXT: [[R:%.*]] = call float @llvm.vector.reduce.fmul.v4f32(float [[PARAM]] , <4 x float> [[VEC]])
237239; CHECK-NEXT: store i32 [[TMP2]], ptr @__msan_retval_tls, align 8
238240; CHECK-NEXT: ret float [[R]]
239241;
240242entry:
241- %r = call float @llvm.vector.reduce.fmul.f32.v4f32 (float undef , <4 x float > %vec )
243+ %r = call float @llvm.vector.reduce.fmul.f32.v4f32 (float %param , <4 x float > %vec )
242244 ret float %r
243245}
244246
@@ -415,3 +417,6 @@ entry:
415417}
416418
417419attributes #0 = { sanitize_memory }
420+ ;.
421+ ; CHECK: [[PROF1]] = !{!"branch_weights", i32 1, i32 1048575}
422+ ;.
0 commit comments