Skip to content

Commit a7f33e8

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:a01b58aef0e42fb1b52e358adf4c56678a884d37 into amd-gfx:e01c1ad5de58
Local branch amd-gfx e01c1ad Merged main:410066a0fad14a390dbdb883ba4b3e018fe62582 into amd-gfx:e9f19c2a24e3 Remote branch main a01b58a [OpenMP][libomptarget][Fix] Add missing array initialization (llvm#76457)
2 parents e01c1ad + a01b58a commit a7f33e8

File tree

4 files changed

+53
-53
lines changed

4 files changed

+53
-53
lines changed

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
/* Indicate that this is LLVM compiled from the amd-gfx branch. */
1818
#define LLVM_HAVE_BRANCH_AMD_GFX
19-
#define LLVM_MAIN_REVISION 484813
19+
#define LLVM_MAIN_REVISION 484816
2020

2121
/* Define if LLVM_ENABLE_DUMP is enabled */
2222
#cmakedefine LLVM_ENABLE_DUMP

llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,13 @@ class SegRegClass<LMULInfo m, int nf> {
257257
// Vector register and vector group type information.
258258
//===----------------------------------------------------------------------===//
259259

260-
class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
260+
class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, LMULInfo M,
261261
ValueType Scal = XLenVT, RegisterClass ScalarReg = GPR> {
262262
ValueType Vector = Vec;
263263
ValueType Mask = Mas;
264264
int SEW = Sew;
265265
int Log2SEW = !logtwo(Sew);
266-
VReg RegClass = Reg;
266+
VReg RegClass = M.vrclass;
267267
LMULInfo LMul = M;
268268
ValueType Scalar = Scal;
269269
RegisterClass ScalarRegClass = ScalarReg;
@@ -279,100 +279,100 @@ class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
279279
}
280280

281281
class GroupVTypeInfo<ValueType Vec, ValueType VecM1, ValueType Mas, int Sew,
282-
VReg Reg, LMULInfo M, ValueType Scal = XLenVT,
282+
LMULInfo M, ValueType Scal = XLenVT,
283283
RegisterClass ScalarReg = GPR>
284-
: VTypeInfo<Vec, Mas, Sew, Reg, M, Scal, ScalarReg> {
284+
: VTypeInfo<Vec, Mas, Sew, M, Scal, ScalarReg> {
285285
ValueType VectorM1 = VecM1;
286286
}
287287

288288
defset list<VTypeInfo> AllVectors = {
289289
defset list<VTypeInfo> AllIntegerVectors = {
290290
defset list<VTypeInfo> NoGroupIntegerVectors = {
291291
defset list<VTypeInfo> FractionalGroupIntegerVectors = {
292-
def VI8MF8: VTypeInfo<vint8mf8_t, vbool64_t, 8, VR, V_MF8>;
293-
def VI8MF4: VTypeInfo<vint8mf4_t, vbool32_t, 8, VR, V_MF4>;
294-
def VI8MF2: VTypeInfo<vint8mf2_t, vbool16_t, 8, VR, V_MF2>;
295-
def VI16MF4: VTypeInfo<vint16mf4_t, vbool64_t, 16, VR, V_MF4>;
296-
def VI16MF2: VTypeInfo<vint16mf2_t, vbool32_t, 16, VR, V_MF2>;
297-
def VI32MF2: VTypeInfo<vint32mf2_t, vbool64_t, 32, VR, V_MF2>;
292+
def VI8MF8: VTypeInfo<vint8mf8_t, vbool64_t, 8, V_MF8>;
293+
def VI8MF4: VTypeInfo<vint8mf4_t, vbool32_t, 8, V_MF4>;
294+
def VI8MF2: VTypeInfo<vint8mf2_t, vbool16_t, 8, V_MF2>;
295+
def VI16MF4: VTypeInfo<vint16mf4_t, vbool64_t, 16, V_MF4>;
296+
def VI16MF2: VTypeInfo<vint16mf2_t, vbool32_t, 16, V_MF2>;
297+
def VI32MF2: VTypeInfo<vint32mf2_t, vbool64_t, 32, V_MF2>;
298298
}
299-
def VI8M1: VTypeInfo<vint8m1_t, vbool8_t, 8, VR, V_M1>;
300-
def VI16M1: VTypeInfo<vint16m1_t, vbool16_t, 16, VR, V_M1>;
301-
def VI32M1: VTypeInfo<vint32m1_t, vbool32_t, 32, VR, V_M1>;
302-
def VI64M1: VTypeInfo<vint64m1_t, vbool64_t, 64, VR, V_M1>;
299+
def VI8M1: VTypeInfo<vint8m1_t, vbool8_t, 8, V_M1>;
300+
def VI16M1: VTypeInfo<vint16m1_t, vbool16_t, 16, V_M1>;
301+
def VI32M1: VTypeInfo<vint32m1_t, vbool32_t, 32, V_M1>;
302+
def VI64M1: VTypeInfo<vint64m1_t, vbool64_t, 64, V_M1>;
303303
}
304304
defset list<GroupVTypeInfo> GroupIntegerVectors = {
305-
def VI8M2: GroupVTypeInfo<vint8m2_t, vint8m1_t, vbool4_t, 8, VRM2, V_M2>;
306-
def VI8M4: GroupVTypeInfo<vint8m4_t, vint8m1_t, vbool2_t, 8, VRM4, V_M4>;
307-
def VI8M8: GroupVTypeInfo<vint8m8_t, vint8m1_t, vbool1_t, 8, VRM8, V_M8>;
305+
def VI8M2: GroupVTypeInfo<vint8m2_t, vint8m1_t, vbool4_t, 8, V_M2>;
306+
def VI8M4: GroupVTypeInfo<vint8m4_t, vint8m1_t, vbool2_t, 8, V_M4>;
307+
def VI8M8: GroupVTypeInfo<vint8m8_t, vint8m1_t, vbool1_t, 8, V_M8>;
308308

309-
def VI16M2: GroupVTypeInfo<vint16m2_t,vint16m1_t,vbool8_t, 16,VRM2, V_M2>;
310-
def VI16M4: GroupVTypeInfo<vint16m4_t,vint16m1_t,vbool4_t, 16,VRM4, V_M4>;
311-
def VI16M8: GroupVTypeInfo<vint16m8_t,vint16m1_t,vbool2_t, 16,VRM8, V_M8>;
309+
def VI16M2: GroupVTypeInfo<vint16m2_t, vint16m1_t, vbool8_t, 16, V_M2>;
310+
def VI16M4: GroupVTypeInfo<vint16m4_t, vint16m1_t, vbool4_t, 16, V_M4>;
311+
def VI16M8: GroupVTypeInfo<vint16m8_t, vint16m1_t, vbool2_t, 16, V_M8>;
312312

313-
def VI32M2: GroupVTypeInfo<vint32m2_t,vint32m1_t,vbool16_t,32,VRM2, V_M2>;
314-
def VI32M4: GroupVTypeInfo<vint32m4_t,vint32m1_t,vbool8_t, 32,VRM4, V_M4>;
315-
def VI32M8: GroupVTypeInfo<vint32m8_t,vint32m1_t,vbool4_t, 32,VRM8, V_M8>;
313+
def VI32M2: GroupVTypeInfo<vint32m2_t, vint32m1_t, vbool16_t, 32, V_M2>;
314+
def VI32M4: GroupVTypeInfo<vint32m4_t, vint32m1_t, vbool8_t, 32, V_M4>;
315+
def VI32M8: GroupVTypeInfo<vint32m8_t, vint32m1_t, vbool4_t, 32, V_M8>;
316316

317-
def VI64M2: GroupVTypeInfo<vint64m2_t,vint64m1_t,vbool32_t,64,VRM2, V_M2>;
318-
def VI64M4: GroupVTypeInfo<vint64m4_t,vint64m1_t,vbool16_t,64,VRM4, V_M4>;
319-
def VI64M8: GroupVTypeInfo<vint64m8_t,vint64m1_t,vbool8_t, 64,VRM8, V_M8>;
317+
def VI64M2: GroupVTypeInfo<vint64m2_t, vint64m1_t, vbool32_t, 64, V_M2>;
318+
def VI64M4: GroupVTypeInfo<vint64m4_t, vint64m1_t, vbool16_t, 64, V_M4>;
319+
def VI64M8: GroupVTypeInfo<vint64m8_t, vint64m1_t, vbool8_t, 64, V_M8>;
320320
}
321321
}
322322

323323
defset list<VTypeInfo> AllFloatVectors = {
324324
defset list<VTypeInfo> NoGroupFloatVectors = {
325325
defset list<VTypeInfo> FractionalGroupFloatVectors = {
326-
def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, VR, V_MF4, f16, FPR16>;
327-
def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, VR, V_MF2, f16, FPR16>;
328-
def VF32MF2: VTypeInfo<vfloat32mf2_t,vbool64_t, 32, VR, V_MF2, f32, FPR32>;
326+
def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, V_MF4, f16, FPR16>;
327+
def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, V_MF2, f16, FPR16>;
328+
def VF32MF2: VTypeInfo<vfloat32mf2_t, vbool64_t, 32, V_MF2, f32, FPR32>;
329329
}
330-
def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, VR, V_M1, f16, FPR16>;
331-
def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, VR, V_M1, f32, FPR32>;
332-
def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, VR, V_M1, f64, FPR64>;
330+
def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, V_M1, f16, FPR16>;
331+
def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, V_M1, f32, FPR32>;
332+
def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, V_M1, f64, FPR64>;
333333
}
334334

335335
defset list<GroupVTypeInfo> GroupFloatVectors = {
336336
def VF16M2: GroupVTypeInfo<vfloat16m2_t, vfloat16m1_t, vbool8_t, 16,
337-
VRM2, V_M2, f16, FPR16>;
337+
V_M2, f16, FPR16>;
338338
def VF16M4: GroupVTypeInfo<vfloat16m4_t, vfloat16m1_t, vbool4_t, 16,
339-
VRM4, V_M4, f16, FPR16>;
339+
V_M4, f16, FPR16>;
340340
def VF16M8: GroupVTypeInfo<vfloat16m8_t, vfloat16m1_t, vbool2_t, 16,
341-
VRM8, V_M8, f16, FPR16>;
341+
V_M8, f16, FPR16>;
342342

343343
def VF32M2: GroupVTypeInfo<vfloat32m2_t, vfloat32m1_t, vbool16_t, 32,
344-
VRM2, V_M2, f32, FPR32>;
344+
V_M2, f32, FPR32>;
345345
def VF32M4: GroupVTypeInfo<vfloat32m4_t, vfloat32m1_t, vbool8_t, 32,
346-
VRM4, V_M4, f32, FPR32>;
346+
V_M4, f32, FPR32>;
347347
def VF32M8: GroupVTypeInfo<vfloat32m8_t, vfloat32m1_t, vbool4_t, 32,
348-
VRM8, V_M8, f32, FPR32>;
348+
V_M8, f32, FPR32>;
349349

350350
def VF64M2: GroupVTypeInfo<vfloat64m2_t, vfloat64m1_t, vbool32_t, 64,
351-
VRM2, V_M2, f64, FPR64>;
351+
V_M2, f64, FPR64>;
352352
def VF64M4: GroupVTypeInfo<vfloat64m4_t, vfloat64m1_t, vbool16_t, 64,
353-
VRM4, V_M4, f64, FPR64>;
353+
V_M4, f64, FPR64>;
354354
def VF64M8: GroupVTypeInfo<vfloat64m8_t, vfloat64m1_t, vbool8_t, 64,
355-
VRM8, V_M8, f64, FPR64>;
355+
V_M8, f64, FPR64>;
356356
}
357357
}
358358
}
359359

360360
defset list<VTypeInfo> AllBFloatVectors = {
361361
defset list<VTypeInfo> NoGroupBFloatVectors = {
362362
defset list<VTypeInfo> FractionalGroupBFloatVectors = {
363-
def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, VR, V_MF4, bf16, FPR16>;
364-
def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, VR, V_MF2, bf16, FPR16>;
363+
def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
364+
def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
365365
}
366-
def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, VR, V_M1, bf16, FPR16>;
366+
def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
367367
}
368368

369369
defset list<GroupVTypeInfo> GroupBFloatVectors = {
370370
def VBF16M2: GroupVTypeInfo<vbfloat16m2_t, vbfloat16m1_t, vbool8_t, 16,
371-
VRM2, V_M2, bf16, FPR16>;
371+
V_M2, bf16, FPR16>;
372372
def VBF16M4: GroupVTypeInfo<vbfloat16m4_t, vbfloat16m1_t, vbool4_t, 16,
373-
VRM4, V_M4, bf16, FPR16>;
373+
V_M4, bf16, FPR16>;
374374
def VBF16M8: GroupVTypeInfo<vbfloat16m8_t, vbfloat16m1_t, vbool2_t, 16,
375-
VRM8, V_M8, bf16, FPR16>;
375+
V_M8, bf16, FPR16>;
376376
}
377377
}
378378

llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,9 @@ multiclass VPseudoSiFiveVQMACCDOD<string Constraint = ""> {
356356
}
357357

358358
multiclass VPseudoSiFiveVQMACCQOQ<string Constraint = ""> {
359-
foreach i = 0-3 in
360-
let VLMul = MxListVF4[i].value in
361-
defm NAME : VPseudoSiFiveVMACC<MxListVF4[i].MX, MxListVF8[i].vrclass,
362-
MxListVF4[i].vrclass, Constraint>;
359+
foreach m = [V_MF2, V_M1, V_M2, V_M4] in
360+
let VLMul = m.value in
361+
defm NAME : VPseudoSiFiveVMACC<m.MX, m.wvrclass, m.vrclass, Constraint>;
363362
}
364363

365364
multiclass VPseudoSiFiveVFWMACC<string Constraint = ""> {
@@ -369,7 +368,7 @@ multiclass VPseudoSiFiveVFWMACC<string Constraint = ""> {
369368
}
370369

371370
multiclass VPseudoSiFiveVFNRCLIP<string Constraint = "@earlyclobber $rd"> {
372-
foreach i = [0, 1, 2, 3, 4] in
371+
foreach i = 0-4 in
373372
let hasSideEffects = 0 in
374373
defm "Pseudo" # NAME : VPseudoBinaryRoundingMode<MxListW[i].vrclass,
375374
MxListVF4[i].vrclass,

openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ int main() {
2929

3030
dat.datum[7] = 7;
3131
dat.more_datum[17] = 17;
32+
dat.datum[dat.arr[0][0]] = 0;
3233

3334
/// The struct is mapped with type 0x0 when the pointer fields are mapped.
3435
/// The struct is also map explicitely by the user. The second mapping by

0 commit comments

Comments
 (0)