@@ -22,143 +22,125 @@ float2 test_lerp_double2(double2 p0) { return lerp(p0, p0, p0); }
2222// CHECK-NEXT: [[CONV:%.*]] = fptrunc {{.*}} <3 x double> [[P0:%.*]] to <3 x float>
2323// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
2424// CHECK-NEXT: ret <3 x float> [[LERP]]
25- //
2625float3 test_lerp_double3 (double3 p0) { return lerp (p0, p0, p0); }
2726
2827// CHECK: define [[FNATTRS]] <4 x float> @_Z17test_lerp_double4Dv4_d(
2928// CHECK-NEXT: [[ENTRY:.*:]]
3029// CHECK-NEXT: [[CONV:%.*]] = fptrunc {{.*}} <4 x double> [[P0:%.*]] to <4 x float>
3130// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
3231// CHECK-NEXT: ret <4 x float> [[LERP]]
33- //
3432float4 test_lerp_double4 (double4 p0) { return lerp (p0, p0, p0); }
3533
3634// CHECK: define [[FNATTRS]] float @_Z13test_lerp_inti(
3735// CHECK-NEXT: [[ENTRY:.*:]]
3836// CHECK-NEXT: [[CONV:%.*]] = sitofp i32 [[P0:%.*]] to float
3937// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
4038// CHECK-NEXT: ret float [[LERP]]
41- //
4239float test_lerp_int (int p0) { return lerp (p0, p0, p0); }
4340
4441// CHECK: define [[FNATTRS]] <2 x float> @_Z14test_lerp_int2Dv2_i(
4542// CHECK-NEXT: [[ENTRY:.*:]]
4643// CHECK-NEXT: [[CONV:%.*]] = sitofp <2 x i32> [[P0:%.*]] to <2 x float>
4744// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
4845// CHECK-NEXT: ret <2 x float> [[LERP]]
49- //
5046float2 test_lerp_int2 (int2 p0) { return lerp (p0, p0, p0); }
5147
5248// CHECK: define [[FNATTRS]] <3 x float> @_Z14test_lerp_int3Dv3_i(
5349// CHECK-NEXT: [[ENTRY:.*:]]
5450// CHECK-NEXT: [[CONV:%.*]] = sitofp <3 x i32> [[P0:%.*]] to <3 x float>
5551// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
5652// CHECK-NEXT: ret <3 x float> [[LERP]]
57- //
5853float3 test_lerp_int3 (int3 p0) { return lerp (p0, p0, p0); }
5954
6055// CHECK: define [[FNATTRS]] <4 x float> @_Z14test_lerp_int4Dv4_i(
6156// CHECK-NEXT: [[ENTRY:.*:]]
6257// CHECK-NEXT: [[CONV:%.*]] = sitofp <4 x i32> [[P0:%.*]] to <4 x float>
6358// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
6459// CHECK-NEXT: ret <4 x float> [[LERP]]
65- //
6660float4 test_lerp_int4 (int4 p0) { return lerp (p0, p0, p0); }
6761
6862// CHECK: define [[FNATTRS]] float @_Z14test_lerp_uintj(
6963// CHECK-NEXT: [[ENTRY:.*:]]
7064// CHECK-NEXT: [[CONV:%.*]] = uitofp i32 [[P0:%.*]] to float
7165// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
7266// CHECK-NEXT: ret float [[LERP]]
73- //
7467float test_lerp_uint (uint p0) { return lerp (p0, p0, p0); }
7568
7669// CHECK: define [[FNATTRS]] <2 x float> @_Z15test_lerp_uint2Dv2_j(
7770// CHECK-NEXT: [[ENTRY:.*:]]
7871// CHECK-NEXT: [[CONV:%.*]] = uitofp <2 x i32> [[P0:%.*]] to <2 x float>
7972// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
8073// CHECK-NEXT: ret <2 x float> [[LERP]]
81- //
8274float2 test_lerp_uint2 (uint2 p0) { return lerp (p0, p0, p0); }
8375
8476// CHECK: define [[FNATTRS]] <3 x float> @_Z15test_lerp_uint3Dv3_j(
8577// CHECK-NEXT: [[ENTRY:.*:]]
8678// CHECK-NEXT: [[CONV:%.*]] = uitofp <3 x i32> [[P0:%.*]] to <3 x float>
8779// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
8880// CHECK-NEXT: ret <3 x float> [[LERP]]
89- //
9081float3 test_lerp_uint3 (uint3 p0) { return lerp (p0, p0, p0); }
9182
9283// CHECK: define [[FNATTRS]] <4 x float> @_Z15test_lerp_uint4Dv4_j(
9384// CHECK-NEXT: [[ENTRY:.*:]]
9485// CHECK-NEXT: [[CONV:%.*]] = uitofp <4 x i32> [[P0:%.*]] to <4 x float>
9586// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
9687// CHECK-NEXT: ret <4 x float> [[LERP]]
97- //
9888float4 test_lerp_uint4 (uint4 p0) { return lerp (p0, p0, p0); }
9989
10090// CHECK: define [[FNATTRS]] float @_Z17test_lerp_int64_tl(
10191// CHECK-NEXT: [[ENTRY:.*:]]
10292// CHECK-NEXT: [[CONV:%.*]] = sitofp i64 [[P0:%.*]] to float
10393// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
10494// CHECK-NEXT: ret float [[LERP]]
105- //
10695float test_lerp_int64_t (int64_t p0) { return lerp (p0, p0, p0); }
10796
10897// CHECK: define [[FNATTRS]] <2 x float> @_Z18test_lerp_int64_t2Dv2_l(
10998// CHECK-NEXT: [[ENTRY:.*:]]
11099// CHECK-NEXT: [[CONV:%.*]] = sitofp <2 x i64> [[P0:%.*]] to <2 x float>
111100// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
112101// CHECK-NEXT: ret <2 x float> [[LERP]]
113- //
114102float2 test_lerp_int64_t2 (int64_t2 p0) { return lerp (p0, p0, p0); }
115103
116104// CHECK: define [[FNATTRS]] <3 x float> @_Z18test_lerp_int64_t3Dv3_l(
117105// CHECK-NEXT: [[ENTRY:.*:]]
118106// CHECK-NEXT: [[CONV:%.*]] = sitofp <3 x i64> [[P0:%.*]] to <3 x float>
119107// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
120108// CHECK-NEXT: ret <3 x float> [[LERP]]
121- //
122109float3 test_lerp_int64_t3 (int64_t3 p0) { return lerp (p0, p0, p0); }
123110
124111// CHECK: define [[FNATTRS]] <4 x float> @_Z18test_lerp_int64_t4Dv4_l(
125112// CHECK-NEXT: [[ENTRY:.*:]]
126113// CHECK-NEXT: [[CONV:%.*]] = sitofp <4 x i64> [[P0:%.*]] to <4 x float>
127114// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
128115// CHECK-NEXT: ret <4 x float> [[LERP]]
129- //
130116float4 test_lerp_int64_t4 (int64_t4 p0) { return lerp (p0, p0, p0); }
131117
132118// CHECK: define [[FNATTRS]] float @_Z18test_lerp_uint64_tm(
133119// CHECK-NEXT: [[ENTRY:.*:]]
134120// CHECK-NEXT: [[CONV:%.*]] = uitofp i64 [[P0:%.*]] to float
135121// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
136122// CHECK-NEXT: ret float [[LERP]]
137- //
138123float test_lerp_uint64_t (uint64_t p0) { return lerp (p0, p0, p0); }
139124
140125// CHECK: define [[FNATTRS]] <2 x float> @_Z19test_lerp_uint64_t2Dv2_m(
141126// CHECK-NEXT: [[ENTRY:.*:]]
142127// CHECK-NEXT: [[CONV:%.*]] = uitofp <2 x i64> [[P0:%.*]] to <2 x float>
143128// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
144129// CHECK-NEXT: ret <2 x float> [[LERP]]
145- //
146130float2 test_lerp_uint64_t2 (uint64_t2 p0) { return lerp (p0, p0, p0); }
147131
148132// CHECK: define [[FNATTRS]] <3 x float> @_Z19test_lerp_uint64_t3Dv3_m(
149133// CHECK-NEXT: [[ENTRY:.*:]]
150134// CHECK-NEXT: [[CONV:%.*]] = uitofp <3 x i64> [[P0:%.*]] to <3 x float>
151135// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
152136// CHECK-NEXT: ret <3 x float> [[LERP]]
153- //
154137float3 test_lerp_uint64_t3 (uint64_t3 p0) { return lerp (p0, p0, p0); }
155138
156139// CHECK: define [[FNATTRS]] <4 x float> @_Z19test_lerp_uint64_t4Dv4_m(
157140// CHECK-NEXT: [[ENTRY:.*:]]
158141// CHECK-NEXT: [[CONV:%.*]] = uitofp <4 x i64> [[P0:%.*]] to <4 x float>
159142// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
160143// CHECK-NEXT: ret <4 x float> [[LERP]]
161- //
162144float4 test_lerp_uint64_t4 (uint64_t4 p0) { return lerp (p0, p0, p0); }
163145
164146// NATIVE_HALF: define [[FNATTRS]] <3 x half> @_Z21test_lerp_half_scalarDv3_DhS_Dh{{.*}}(
@@ -180,7 +162,6 @@ half3 test_lerp_half_scalar(half3 x, half3 y, half s) { return lerp(x, y, s); }
180162// CHECK-NEXT: [[SPLAT:%.*]] = shufflevector <3 x float> [[SPLATINSERT]], <3 x float> poison, <3 x i32> zeroinitializer
181163// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> {{.*}}, <3 x float> {{.*}}, <3 x float> [[SPLAT]])
182164// CHECK-NEXT: ret <3 x float> [[LERP]]
183- //
184165float3 test_lerp_float_scalar (float3 x, float3 y, float s) {
185166 return lerp (x, y, s);
186167}
0 commit comments