Skip to content

Commit a30a1bd

Browse files
author
git apple-llvm automerger
committed
Merge commit 'c872e809d1ac' from llvm.org/master into apple/master
2 parents 361e895 + c872e80 commit a30a1bd

File tree

5 files changed

+39
-35
lines changed

5 files changed

+39
-35
lines changed

clang/test/CodeGen/matrix-type-builtins.c

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
// RUN: %clang_cc1 -fenable-matrix -triple x86_64-apple-darwin %s -emit-llvm -disable-llvm-passes -o - | FileCheck %s
22

3+
// Also check we do not crash when running some middle-end passes. Most
4+
// importantly this includes the IR verifier, to ensure we emit valid IR.
5+
// RUN: %clang_cc1 -fenable-matrix -emit-llvm -triple x86_64-apple-darwin %s -o %t
6+
37
// Tests for the matrix type builtins.
48

59
typedef double dx5x5_t __attribute__((matrix_type(5, 5)));
@@ -100,15 +104,15 @@ void transpose_global() {
100104
void column_major_load_with_const_stride_double(double *Ptr) {
101105
// CHECK-LABEL: define void @column_major_load_with_const_stride_double(double* %Ptr)
102106
// CHECK: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
103-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
107+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
104108

105109
dx5x5_t m_a1 = __builtin_matrix_column_major_load(Ptr, 5, 5, 5);
106110
}
107111

108112
void column_major_load_with_const_stride2_double(double *Ptr) {
109113
// CHECK-LABEL: define void @column_major_load_with_const_stride2_double(double* %Ptr)
110114
// CHECK: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
111-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 8 [[PTR]], i64 15, i1 false, i32 5, i32 5)
115+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 8 [[PTR]], i64 15, i1 false, i32 5, i32 5)
112116

113117
dx5x5_t m_a2 = __builtin_matrix_column_major_load(Ptr, 5, 5, 2 * 3 + 9);
114118
}
@@ -117,7 +121,7 @@ void column_major_load_with_variable_stride_ull_float(float *Ptr, unsigned long
117121
// CHECK-LABEL: define void @column_major_load_with_variable_stride_ull_float(float* %Ptr, i64 %S)
118122
// CHECK: [[S:%.*]] = load i64, i64* %S.addr, align 8
119123
// CHECK-NEXT: [[PTR:%.*]] = load float*, float** %Ptr.addr, align 8
120-
// CHECK-NEXT: call <6 x float> @llvm.matrix.column.major.load.v6f32.p0f32(float* align 4 [[PTR]], i64 [[S]], i1 false, i32 2, i32 3)
124+
// CHECK-NEXT: call <6 x float> @llvm.matrix.column.major.load.v6f32(float* align 4 [[PTR]], i64 [[S]], i1 false, i32 2, i32 3)
121125

122126
fx2x3_t m_b = __builtin_matrix_column_major_load(Ptr, 2, 3, S);
123127
}
@@ -128,7 +132,7 @@ void column_major_load_with_stride_math_int(int *Ptr, int S) {
128132
// CHECK-NEXT: [[STRIDE:%.*]] = add nsw i32 [[S]], 32
129133
// CHECK-NEXT: [[STRIDE_EXT:%.*]] = sext i32 [[STRIDE]] to i64
130134
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
131-
// CHECK-NEXT: call <80 x i32> @llvm.matrix.column.major.load.v80i32.p0i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 4, i32 20)
135+
// CHECK-NEXT: call <80 x i32> @llvm.matrix.column.major.load.v80i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 4, i32 20)
132136

133137
ix4x20_t m_c = __builtin_matrix_column_major_load(Ptr, 4, 20, S + 32);
134138
}
@@ -140,15 +144,15 @@ void column_major_load_with_stride_math_s_int(int *Ptr, short S) {
140144
// CHECK-NEXT: [[STRIDE:%.*]] = add nsw i32 [[S_EXT]], 32
141145
// CHECK-NEXT: [[STRIDE_EXT:%.*]] = sext i32 [[STRIDE]] to i64
142146
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
143-
// CHECK-NEXT: %matrix = call <80 x i32> @llvm.matrix.column.major.load.v80i32.p0i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 4, i32 20)
147+
// CHECK-NEXT: %matrix = call <80 x i32> @llvm.matrix.column.major.load.v80i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 4, i32 20)
144148

145149
ix4x20_t m_c = __builtin_matrix_column_major_load(Ptr, 4, 20, S + 32);
146150
}
147151

148152
void column_major_load_array1(double Ptr[25]) {
149153
// CHECK-LABEL: define void @column_major_load_array1(double* %Ptr)
150154
// CHECK: [[ADDR:%.*]] = load double*, double** %Ptr.addr, align 8
151-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 8 [[ADDR]], i64 5, i1 false, i32 5, i32 5)
155+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 8 [[ADDR]], i64 5, i1 false, i32 5, i32 5)
152156

153157
dx5x5_t m = __builtin_matrix_column_major_load(Ptr, 5, 5, 5);
154158
}
@@ -158,7 +162,7 @@ void column_major_load_array2() {
158162
// CHECK-NEXT: entry:
159163
// CHECK-NEXT: [[PTR:%.*]] = alloca [25 x double], align 16
160164
// CHECK: [[ARRAY_DEC:%.*]] = getelementptr inbounds [25 x double], [25 x double]* [[PTR]], i64 0, i64 0
161-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 16 [[ARRAY_DEC]], i64 5, i1 false, i32 5, i32 5)
165+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 16 [[ARRAY_DEC]], i64 5, i1 false, i32 5, i32 5)
162166

163167
double Ptr[25];
164168
dx5x5_t m = __builtin_matrix_column_major_load(Ptr, 5, 5, 5);
@@ -167,15 +171,15 @@ void column_major_load_array2() {
167171
void column_major_load_const(const double *Ptr) {
168172
// CHECK-LABEL: define void @column_major_load_const(double* %Ptr)
169173
// CHECK: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
170-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
174+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
171175

172176
dx5x5_t m_a1 = __builtin_matrix_column_major_load(Ptr, 5, 5, 5);
173177
}
174178

175179
void column_major_load_volatile(volatile double *Ptr) {
176180
// CHECK-LABEL: define void @column_major_load_volatile(double* %Ptr)
177181
// CHECK: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
178-
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64.p0f64(double* align 8 [[PTR]], i64 5, i1 true, i32 5, i32 5)
182+
// CHECK-NEXT: call <25 x double> @llvm.matrix.column.major.load.v25f64(double* align 8 [[PTR]], i64 5, i1 true, i32 5, i32 5)
179183

180184
dx5x5_t m_a1 = __builtin_matrix_column_major_load(Ptr, 5, 5, 5);
181185
}
@@ -184,7 +188,7 @@ void column_major_store_with_const_stride_double(double *Ptr) {
184188
// CHECK-LABEL: define void @column_major_store_with_const_stride_double(double* %Ptr)
185189
// CHECK: [[M:%.*]] = load <25 x double>, <25 x double>* {{.*}}, align 8
186190
// CHECK-NEXT: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
187-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64.p0f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
191+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
188192

189193
dx5x5_t m;
190194
__builtin_matrix_column_major_store(m, Ptr, 5);
@@ -194,7 +198,7 @@ void column_major_store_with_const_stride2_double(double *Ptr) {
194198
// CHECK-LABEL: define void @column_major_store_with_const_stride2_double(double* %Ptr)
195199
// CHECK: [[M:%.*]] = load <25 x double>, <25 x double>* {{.*}}, align 8
196200
// CHECK-NEXT: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
197-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64.p0f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 15, i1 false, i32 5, i32 5)
201+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 15, i1 false, i32 5, i32 5)
198202
//
199203
dx5x5_t m;
200204
__builtin_matrix_column_major_store(m, Ptr, 2 * 3 + 9);
@@ -207,7 +211,7 @@ void column_major_store_with_stride_math_int(int *Ptr, int S) {
207211
// CHECK-NEXT: [[S:%.*]] = load i32, i32* %S.addr, align 4
208212
// CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[S]], 32
209213
// CHECK-NEXT: [[IDX:%.*]] = sext i32 [[ADD]] to i64
210-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v80i32.p0i32(<80 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX]], i1 false, i32 4, i32 20)
214+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v80i32(<80 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX]], i1 false, i32 4, i32 20)
211215

212216
ix4x20_t m;
213217
__builtin_matrix_column_major_store(m, Ptr, S + 32);
@@ -221,7 +225,7 @@ void column_major_store_with_stride_math_s_int(int *Ptr, short S) {
221225
// CHECK-NEXT: [[EXT:%.*]] = sext i16 [[S]] to i32
222226
// CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[EXT]], 2
223227
// CHECK-NEXT: [[IDX:%.*]] = sext i32 [[ADD]] to i64
224-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v80i32.p0i32(<80 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX]], i1 false, i32 4, i32 20)
228+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v80i32(<80 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX]], i1 false, i32 4, i32 20)
225229

226230
ix4x20_t m;
227231
__builtin_matrix_column_major_store(m, Ptr, S + 2);
@@ -231,7 +235,7 @@ void column_major_store_array1(double Ptr[25]) {
231235
// CHECK-LABEL: define void @column_major_store_array1(double* %Ptr)
232236
// CHECK: [[M:%.*]] = load <25 x double>, <25 x double>* {{.*}}, align 8
233237
// CHECK-NEXT: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
234-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64.p0f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
238+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 false, i32 5, i32 5)
235239

236240
dx5x5_t m;
237241
__builtin_matrix_column_major_store(m, Ptr, 5);
@@ -241,7 +245,7 @@ void column_major_store_array2() {
241245
// CHECK-LABEL: define void @column_major_store_array2()
242246
// CHECK: [[M:%.*]] = load <25 x double>, <25 x double>* {{.*}}, align 8
243247
// CHECK-NEXT: [[PTR:%.*]] = getelementptr inbounds [25 x double], [25 x double]* %Ptr, i64 0, i64 0
244-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64.p0f64(<25 x double> [[M]], double* align 16 [[PTR]], i64 5, i1 false, i32 5, i32 5)
248+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64(<25 x double> [[M]], double* align 16 [[PTR]], i64 5, i1 false, i32 5, i32 5)
245249

246250
double Ptr[25];
247251
dx5x5_t m;
@@ -252,7 +256,7 @@ void column_major_store_volatile(volatile double *Ptr) {
252256
// CHECK-LABEL: define void @column_major_store_volatile(double* %Ptr) #0 {
253257
// CHECK: [[M:%.*]] = load <25 x double>, <25 x double>* {{.*}}, align 8
254258
// CHECK-NEXT: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
255-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64.p0f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 true, i32 5, i32 5)
259+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v25f64(<25 x double> [[M]], double* align 8 [[PTR]], i64 5, i1 true, i32 5, i32 5)
256260

257261
dx5x5_t m;
258262
__builtin_matrix_column_major_store(m, Ptr, 5);

clang/test/CodeGenCXX/matrix-type-builtins.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ void test_column_major_load_with_stride_template_double(double *Ptr) {
9494

9595
// CHECK-LABEL: define linkonce_odr <40 x double> @_Z29column_major_load_with_strideIdLj10ELj4ELj15EEU11matrix_typeXT0_EXT1_ET_PS0_(double* %Ptr)
9696
// CHECK: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
97-
// CHECK-NEXT: call <40 x double> @llvm.matrix.column.major.load.v40f64.p0f64(double* align 8 [[PTR]], i64 15, i1 false, i32 10, i32 4)
97+
// CHECK-NEXT: call <40 x double> @llvm.matrix.column.major.load.v40f64(double* align 8 [[PTR]], i64 15, i1 false, i32 10, i32 4)
9898

9999
matrix_t<double, 10, 4> M1 = column_major_load_with_stride<double, 10, 4, 15>(Ptr);
100100
}
@@ -106,7 +106,7 @@ void test_column_major_load_with_stride_template_int(int *Ptr) {
106106

107107
// CHECK-LABEL: define linkonce_odr <6 x i32> @_Z29column_major_load_with_strideIiLj3ELj2ELj12EEU11matrix_typeXT0_EXT1_ET_PS0_(i32* %Ptr)
108108
// CHECK: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
109-
// CHECK-NEXT: call <6 x i32> @llvm.matrix.column.major.load.v6i32.p0i32(i32* align 4 [[PTR]], i64 12, i1 false, i32 3, i32 2)
109+
// CHECK-NEXT: call <6 x i32> @llvm.matrix.column.major.load.v6i32(i32* align 4 [[PTR]], i64 12, i1 false, i32 3, i32 2)
110110

111111
matrix_t<int, 3, 2> M1 = column_major_load_with_stride<int, 3, 2, 12>(Ptr);
112112
}
@@ -124,7 +124,7 @@ void test_column_major_load_stride_wrapper(int *Ptr, UnsignedWrapper &W) {
124124
// CHECK-NEXT: [[STRIDE:%.*]] = call i32 @_ZN15UnsignedWrappercvjEv(%struct.UnsignedWrapper* [[W]])
125125
// CHECK-NEXT: [[STRIDE_EXT:%.*]] = zext i32 [[STRIDE]] to i64
126126
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
127-
// CHECK-NEXT: call <4 x i32> @llvm.matrix.column.major.load.v4i32.p0i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 2, i32 2)
127+
// CHECK-NEXT: call <4 x i32> @llvm.matrix.column.major.load.v4i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 2, i32 2)
128128
matrix_t<int, 2, 2> M1 = __builtin_matrix_column_major_load(Ptr, 2, 2, W);
129129
}
130130

@@ -133,7 +133,7 @@ constexpr int constexpr3() { return 3; }
133133
void test_column_major_load_constexpr_num_rows(int *Ptr) {
134134
// CHECK-LABEL: define void @_Z41test_column_major_load_constexpr_num_rowsPi(i32* %Ptr)
135135
// CHECK: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
136-
// CHECK-NEXT: call <6 x i32> @llvm.matrix.column.major.load.v6i32.p0i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 3, i32 2)
136+
// CHECK-NEXT: call <6 x i32> @llvm.matrix.column.major.load.v6i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 3, i32 2)
137137

138138
matrix_t<int, 3, 2> M1 = __builtin_matrix_column_major_load(Ptr, constexpr3(), 2, 3);
139139
}
@@ -143,7 +143,7 @@ constexpr int constexpr1() { return 1; }
143143
void test_column_major_load_constexpr_num_columns(int *Ptr) {
144144
// CHECK-LABEL: define void @_Z44test_column_major_load_constexpr_num_columnsPi(i32* %Ptr)
145145
// CHECK: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
146-
// CHECK-NEXT: call <2 x i32> @llvm.matrix.column.major.load.v2i32.p0i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 2, i32 1)
146+
// CHECK-NEXT: call <2 x i32> @llvm.matrix.column.major.load.v2i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 2, i32 1)
147147
matrix_t<int, 2, 1> M1 = __builtin_matrix_column_major_load(Ptr, 2, constexpr1(), 3);
148148
}
149149

@@ -153,7 +153,7 @@ constexpr int constexpr_plus1() { return N + 1; }
153153
void test_column_major_load_constexpr_num_columns_temp(int *Ptr) {
154154
// CHECK-LABEL: define void @_Z49test_column_major_load_constexpr_num_columns_tempPi(i32* %Ptr)
155155
// CHECK: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
156-
// CHECK-NEXT: call <10 x i32> @llvm.matrix.column.major.load.v10i32.p0i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 2, i32 5)
156+
// CHECK-NEXT: call <10 x i32> @llvm.matrix.column.major.load.v10i32(i32* align 4 [[PTR]], i64 3, i1 false, i32 2, i32 5)
157157
matrix_t<int, 2, 5> M1 = __builtin_matrix_column_major_load(Ptr, 2, constexpr_plus1<4>(), 3);
158158
}
159159

@@ -162,7 +162,7 @@ void test_column_major_load_constexpr_stride_constexpr(int *Ptr) {
162162
// CHECK: [[STRIDE:%.*]] = call i32 @_Z10constexpr3v()
163163
// CHECK-NEXT: [[STRIDE_EXT:%.*]] = sext i32 [[STRIDE]] to i64
164164
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
165-
// CHECK-NEXT: call <4 x i32> @llvm.matrix.column.major.load.v4i32.p0i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 2, i32 2)
165+
// CHECK-NEXT: call <4 x i32> @llvm.matrix.column.major.load.v4i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 2, i32 2)
166166

167167
matrix_t<int, 2, 2> M1 = __builtin_matrix_column_major_load(Ptr, 2, 2, constexpr3());
168168
}
@@ -200,7 +200,7 @@ void test_column_major_store_with_stride_template_double(double *Ptr) {
200200
// CHECK-LABEL: define linkonce_odr void @_Z30column_major_store_with_strideIdLj10ELj4ELj15EEvRU11matrix_typeXT0_EXT1_ET_PS0_([40 x double]* nonnull align 8 dereferenceable(320) %m, double* %Ptr)
201201
// CHECK: [[M:%.*]] = load <40 x double>, <40 x double>* {{.*}}, align 8
202202
// CHECK-NEXT: [[PTR:%.*]] = load double*, double** %Ptr.addr, align 8
203-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v40f64.p0f64(<40 x double> [[M]], double* align 8 [[PTR]], i64 15, i1 false, i32 10, i32 4)
203+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v40f64(<40 x double> [[M]], double* align 8 [[PTR]], i64 15, i1 false, i32 10, i32 4)
204204

205205
matrix_t<double, 10, 4> M1;
206206
column_major_store_with_stride<double, 10, 4, 15>(M1, Ptr);
@@ -214,7 +214,7 @@ void test_column_major_store_with_stride_template_int(int *Ptr) {
214214
// CHECK-LABEL: define linkonce_odr void @_Z30column_major_store_with_strideIiLj3ELj2ELj3EEvRU11matrix_typeXT0_EXT1_ET_PS0_([6 x i32]* nonnull align 4 dereferenceable(24) %m, i32* %Ptr)
215215
// CHECK: [[M:%.*]] = load <6 x i32>, <6 x i32>* {{.*}}, align 4
216216
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
217-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v6i32.p0i32(<6 x i32> [[M]], i32* align 4 [[PTR]], i64 3, i1 false, i32 3, i32 2)
217+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v6i32(<6 x i32> [[M]], i32* align 4 [[PTR]], i64 3, i1 false, i32 3, i32 2)
218218

219219
matrix_t<int, 3, 2> M1;
220220
column_major_store_with_stride<int, 3, 2, 3>(M1, Ptr);
@@ -227,7 +227,7 @@ void test_column_major_store_stride_wrapper(int *Ptr, UnsignedWrapper &W) {
227227
// CHECK-NEXT: [[W:%.*]] = load %struct.UnsignedWrapper*, %struct.UnsignedWrapper** %W.addr, align 8
228228
// CHECK-NEXT: [[IDX:%.*]] = call i32 @_ZN15UnsignedWrappercvjEv(%struct.UnsignedWrapper* [[W]])
229229
// CHECK-NEXT: [[IDX_EXT:%.*]] = zext i32 [[IDX]] to i64
230-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v4i32.p0i32(<4 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 2, i32 2)
230+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v4i32(<4 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 2, i32 2)
231231

232232
matrix_t<int, 2, 2> M1;
233233
__builtin_matrix_column_major_store(M1, Ptr, W);
@@ -239,7 +239,7 @@ void test_column_major_store_constexpr_stride_constexpr(int *Ptr) {
239239
// CHECK-NEXT: [[PTR:%.*]] = load i32*, i32** %Ptr.addr, align 8
240240
// CHECK-NEXT: [[IDX:%.*]] = call i32 @_Z10constexpr3v()
241241
// CHECK-NEXT: [[IDX_EXT:%.*]] = sext i32 [[IDX]] to i64
242-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v4i32.p0i32(<4 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 2, i32 2)
242+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v4i32(<4 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 2, i32 2)
243243

244244
matrix_t<int, 2, 2> M;
245245
__builtin_matrix_column_major_store(M, Ptr, constexpr3());

clang/test/CodeGenObjC/matrix-type-builtins.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void test_column_major_load(PtrValue *Ptr, IntValue *Stride) {
5656
// CHECK: [[STRIDE:%.*]] = call i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)
5757
// CHECK-NEXT: [[STRIDE_EXT:%.*]] = sext i32 [[STRIDE]] to i64
5858
// CHECK: [[PTR:%.*]] = call i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32* (i8*, i8*)*)
59-
// CHECK-NEXT: call <12 x i32> @llvm.matrix.column.major.load.v12i32.p0i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 3, i32 4)
59+
// CHECK-NEXT: call <12 x i32> @llvm.matrix.column.major.load.v12i32(i32* align 4 [[PTR]], i64 [[STRIDE_EXT]], i1 false, i32 3, i32 4)
6060

6161
u3x4 m = __builtin_matrix_column_major_load(Ptr.value, 3, 4, Stride.value);
6262
}
@@ -67,7 +67,7 @@ void test_column_major_store(UnsignedMatrixValue *M, PtrValue *Ptr, IntValue *St
6767
// CHECK: [[PTR:%.*]] = call i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32* (i8*, i8*)*)
6868
// CHECK: [[IDX:%.*]] = call i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)
6969
// CHECK-NEXT: [[IDX_EXT:%.*]] = sext i32 [[IDX]] to i64
70-
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v12i32.p0i32(<12 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 3, i32 4)
70+
// CHECK-NEXT: call void @llvm.matrix.column.major.store.v12i32(<12 x i32> [[M]], i32* align 4 [[PTR]], i64 [[IDX_EXT]], i1 false, i32 3, i32 4)
7171

7272
__builtin_matrix_column_major_store(M.value, Ptr.value, Stride.value);
7373
}

0 commit comments

Comments
 (0)