@@ -22,143 +22,125 @@ float2 test_lerp_double2(double2 p0) { return lerp(p0, p0, p0); }
22
22
// CHECK-NEXT: [[CONV:%.*]] = fptrunc {{.*}} <3 x double> [[P0:%.*]] to <3 x float>
23
23
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
24
24
// CHECK-NEXT: ret <3 x float> [[LERP]]
25
- //
26
25
float3 test_lerp_double3 (double3 p0) { return lerp (p0, p0, p0); }
27
26
28
27
// CHECK: define [[FNATTRS]] <4 x float> @_Z17test_lerp_double4Dv4_d(
29
28
// CHECK-NEXT: [[ENTRY:.*:]]
30
29
// CHECK-NEXT: [[CONV:%.*]] = fptrunc {{.*}} <4 x double> [[P0:%.*]] to <4 x float>
31
30
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
32
31
// CHECK-NEXT: ret <4 x float> [[LERP]]
33
- //
34
32
float4 test_lerp_double4 (double4 p0) { return lerp (p0, p0, p0); }
35
33
36
34
// CHECK: define [[FNATTRS]] float @_Z13test_lerp_inti(
37
35
// CHECK-NEXT: [[ENTRY:.*:]]
38
36
// CHECK-NEXT: [[CONV:%.*]] = sitofp i32 [[P0:%.*]] to float
39
37
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
40
38
// CHECK-NEXT: ret float [[LERP]]
41
- //
42
39
float test_lerp_int (int p0) { return lerp (p0, p0, p0); }
43
40
44
41
// CHECK: define [[FNATTRS]] <2 x float> @_Z14test_lerp_int2Dv2_i(
45
42
// CHECK-NEXT: [[ENTRY:.*:]]
46
43
// CHECK-NEXT: [[CONV:%.*]] = sitofp <2 x i32> [[P0:%.*]] to <2 x float>
47
44
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
48
45
// CHECK-NEXT: ret <2 x float> [[LERP]]
49
- //
50
46
float2 test_lerp_int2 (int2 p0) { return lerp (p0, p0, p0); }
51
47
52
48
// CHECK: define [[FNATTRS]] <3 x float> @_Z14test_lerp_int3Dv3_i(
53
49
// CHECK-NEXT: [[ENTRY:.*:]]
54
50
// CHECK-NEXT: [[CONV:%.*]] = sitofp <3 x i32> [[P0:%.*]] to <3 x float>
55
51
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
56
52
// CHECK-NEXT: ret <3 x float> [[LERP]]
57
- //
58
53
float3 test_lerp_int3 (int3 p0) { return lerp (p0, p0, p0); }
59
54
60
55
// CHECK: define [[FNATTRS]] <4 x float> @_Z14test_lerp_int4Dv4_i(
61
56
// CHECK-NEXT: [[ENTRY:.*:]]
62
57
// CHECK-NEXT: [[CONV:%.*]] = sitofp <4 x i32> [[P0:%.*]] to <4 x float>
63
58
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
64
59
// CHECK-NEXT: ret <4 x float> [[LERP]]
65
- //
66
60
float4 test_lerp_int4 (int4 p0) { return lerp (p0, p0, p0); }
67
61
68
62
// CHECK: define [[FNATTRS]] float @_Z14test_lerp_uintj(
69
63
// CHECK-NEXT: [[ENTRY:.*:]]
70
64
// CHECK-NEXT: [[CONV:%.*]] = uitofp i32 [[P0:%.*]] to float
71
65
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
72
66
// CHECK-NEXT: ret float [[LERP]]
73
- //
74
67
float test_lerp_uint (uint p0) { return lerp (p0, p0, p0); }
75
68
76
69
// CHECK: define [[FNATTRS]] <2 x float> @_Z15test_lerp_uint2Dv2_j(
77
70
// CHECK-NEXT: [[ENTRY:.*:]]
78
71
// CHECK-NEXT: [[CONV:%.*]] = uitofp <2 x i32> [[P0:%.*]] to <2 x float>
79
72
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
80
73
// CHECK-NEXT: ret <2 x float> [[LERP]]
81
- //
82
74
float2 test_lerp_uint2 (uint2 p0) { return lerp (p0, p0, p0); }
83
75
84
76
// CHECK: define [[FNATTRS]] <3 x float> @_Z15test_lerp_uint3Dv3_j(
85
77
// CHECK-NEXT: [[ENTRY:.*:]]
86
78
// CHECK-NEXT: [[CONV:%.*]] = uitofp <3 x i32> [[P0:%.*]] to <3 x float>
87
79
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
88
80
// CHECK-NEXT: ret <3 x float> [[LERP]]
89
- //
90
81
float3 test_lerp_uint3 (uint3 p0) { return lerp (p0, p0, p0); }
91
82
92
83
// CHECK: define [[FNATTRS]] <4 x float> @_Z15test_lerp_uint4Dv4_j(
93
84
// CHECK-NEXT: [[ENTRY:.*:]]
94
85
// CHECK-NEXT: [[CONV:%.*]] = uitofp <4 x i32> [[P0:%.*]] to <4 x float>
95
86
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
96
87
// CHECK-NEXT: ret <4 x float> [[LERP]]
97
- //
98
88
float4 test_lerp_uint4 (uint4 p0) { return lerp (p0, p0, p0); }
99
89
100
90
// CHECK: define [[FNATTRS]] float @_Z17test_lerp_int64_tl(
101
91
// CHECK-NEXT: [[ENTRY:.*:]]
102
92
// CHECK-NEXT: [[CONV:%.*]] = sitofp i64 [[P0:%.*]] to float
103
93
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
104
94
// CHECK-NEXT: ret float [[LERP]]
105
- //
106
95
float test_lerp_int64_t (int64_t p0) { return lerp (p0, p0, p0); }
107
96
108
97
// CHECK: define [[FNATTRS]] <2 x float> @_Z18test_lerp_int64_t2Dv2_l(
109
98
// CHECK-NEXT: [[ENTRY:.*:]]
110
99
// CHECK-NEXT: [[CONV:%.*]] = sitofp <2 x i64> [[P0:%.*]] to <2 x float>
111
100
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
112
101
// CHECK-NEXT: ret <2 x float> [[LERP]]
113
- //
114
102
float2 test_lerp_int64_t2 (int64_t2 p0) { return lerp (p0, p0, p0); }
115
103
116
104
// CHECK: define [[FNATTRS]] <3 x float> @_Z18test_lerp_int64_t3Dv3_l(
117
105
// CHECK-NEXT: [[ENTRY:.*:]]
118
106
// CHECK-NEXT: [[CONV:%.*]] = sitofp <3 x i64> [[P0:%.*]] to <3 x float>
119
107
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
120
108
// CHECK-NEXT: ret <3 x float> [[LERP]]
121
- //
122
109
float3 test_lerp_int64_t3 (int64_t3 p0) { return lerp (p0, p0, p0); }
123
110
124
111
// CHECK: define [[FNATTRS]] <4 x float> @_Z18test_lerp_int64_t4Dv4_l(
125
112
// CHECK-NEXT: [[ENTRY:.*:]]
126
113
// CHECK-NEXT: [[CONV:%.*]] = sitofp <4 x i64> [[P0:%.*]] to <4 x float>
127
114
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
128
115
// CHECK-NEXT: ret <4 x float> [[LERP]]
129
- //
130
116
float4 test_lerp_int64_t4 (int64_t4 p0) { return lerp (p0, p0, p0); }
131
117
132
118
// CHECK: define [[FNATTRS]] float @_Z18test_lerp_uint64_tm(
133
119
// CHECK-NEXT: [[ENTRY:.*:]]
134
120
// CHECK-NEXT: [[CONV:%.*]] = uitofp i64 [[P0:%.*]] to float
135
121
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} float @llvm.[[TARGET]].lerp.f32(float [[CONV]], float [[CONV]], float [[CONV]])
136
122
// CHECK-NEXT: ret float [[LERP]]
137
- //
138
123
float test_lerp_uint64_t (uint64_t p0) { return lerp (p0, p0, p0); }
139
124
140
125
// CHECK: define [[FNATTRS]] <2 x float> @_Z19test_lerp_uint64_t2Dv2_m(
141
126
// CHECK-NEXT: [[ENTRY:.*:]]
142
127
// CHECK-NEXT: [[CONV:%.*]] = uitofp <2 x i64> [[P0:%.*]] to <2 x float>
143
128
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <2 x float> @llvm.[[TARGET]].lerp.v2f32(<2 x float> [[CONV]], <2 x float> [[CONV]], <2 x float> [[CONV]])
144
129
// CHECK-NEXT: ret <2 x float> [[LERP]]
145
- //
146
130
float2 test_lerp_uint64_t2 (uint64_t2 p0) { return lerp (p0, p0, p0); }
147
131
148
132
// CHECK: define [[FNATTRS]] <3 x float> @_Z19test_lerp_uint64_t3Dv3_m(
149
133
// CHECK-NEXT: [[ENTRY:.*:]]
150
134
// CHECK-NEXT: [[CONV:%.*]] = uitofp <3 x i64> [[P0:%.*]] to <3 x float>
151
135
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> [[CONV]], <3 x float> [[CONV]], <3 x float> [[CONV]])
152
136
// CHECK-NEXT: ret <3 x float> [[LERP]]
153
- //
154
137
float3 test_lerp_uint64_t3 (uint64_t3 p0) { return lerp (p0, p0, p0); }
155
138
156
139
// CHECK: define [[FNATTRS]] <4 x float> @_Z19test_lerp_uint64_t4Dv4_m(
157
140
// CHECK-NEXT: [[ENTRY:.*:]]
158
141
// CHECK-NEXT: [[CONV:%.*]] = uitofp <4 x i64> [[P0:%.*]] to <4 x float>
159
142
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <4 x float> @llvm.[[TARGET]].lerp.v4f32(<4 x float> [[CONV]], <4 x float> [[CONV]], <4 x float> [[CONV]])
160
143
// CHECK-NEXT: ret <4 x float> [[LERP]]
161
- //
162
144
float4 test_lerp_uint64_t4 (uint64_t4 p0) { return lerp (p0, p0, p0); }
163
145
164
146
// 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); }
180
162
// CHECK-NEXT: [[SPLAT:%.*]] = shufflevector <3 x float> [[SPLATINSERT]], <3 x float> poison, <3 x i32> zeroinitializer
181
163
// CHECK-NEXT: [[LERP:%.*]] = tail call {{.*}} <3 x float> @llvm.[[TARGET]].lerp.v3f32(<3 x float> {{.*}}, <3 x float> {{.*}}, <3 x float> [[SPLAT]])
182
164
// CHECK-NEXT: ret <3 x float> [[LERP]]
183
- //
184
165
float3 test_lerp_float_scalar (float3 x, float3 y, float s) {
185
166
return lerp (x, y, s);
186
167
}
0 commit comments