Skip to content

Commit 4b7e16c

Browse files
committed
Address review comments
1 parent 4491c64 commit 4b7e16c

File tree

6 files changed

+106
-108
lines changed

6 files changed

+106
-108
lines changed

clang/include/clang/Basic/PPCTypes.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#endif
3131

3232

33-
PPC_VECTOR_MMA_TYPE(__dmr1024, VectorDmr1024, 1024)
33+
PPC_VECTOR_MMA_TYPE(__dmr1024, DMR1024, 1024)
3434
PPC_VECTOR_MMA_TYPE(__vector_quad, VectorQuad, 512)
3535
PPC_VECTOR_VSX_TYPE(__vector_pair, VectorPair, 256)
3636

clang/lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3455,7 +3455,7 @@ static void encodeTypeForFunctionPointerAuth(const ASTContext &Ctx,
34553455
case BuiltinType::BFloat16:
34563456
case BuiltinType::VectorQuad:
34573457
case BuiltinType::VectorPair:
3458-
case BuiltinType::VectorDmr1024:
3458+
case BuiltinType::DMR1024:
34593459
OS << "?";
34603460
return;
34613461

clang/test/CodeGen/PowerPC/ppc-dmf-types.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
22
// RUN: %clang_cc1 -triple powerpc64le-linux-unknown -target-cpu future \
33
// RUN: -emit-llvm -o - %s | FileCheck %s
4-
// RUN: %clang_cc1 -triple powerpc64le-linux-unknown -target-cpu pwr10 \
5-
// RUN: -emit-llvm -o - %s | FileCheck %s
6-
// RUN: %clang_cc1 -triple powerpc64le-linux-unknown -target-cpu pwr9 \
7-
// RUN: -emit-llvm -o - %s | FileCheck %s
8-
// RUN: %clang_cc1 -triple powerpc64le-linux-unknown -target-cpu pwr8 \
9-
// RUN: -emit-llvm -o - %s | FileCheck %s
104

11-
typedef __vector_quad vq_t;
125

136
// CHECK-LABEL: @test_dmr_copy(
147
// CHECK-NEXT: entry:

clang/test/Sema/ppc-dmf-types.c

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -fsyntax-only \
2+
// RUN: -target-cpu future %s -verify
3+
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -fsyntax-only \
4+
// RUN: -target-cpu future %s -verify
5+
6+
// The use of PPC MMA types is strongly restricted. Non-pointer MMA variables
7+
// can only be declared in functions and a limited number of operations are
8+
// supported on these types. This test case checks that invalid uses of MMA
9+
// types are correctly prevented.
10+
11+
// vector dmr
12+
13+
// typedef
14+
typedef __dmr1024 dmr_t;
15+
16+
// function argument
17+
void testDmrArg1(__dmr1024 vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
18+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
19+
*vdmrp = vdmr;
20+
}
21+
22+
void testDmrArg2(const __dmr1024 vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
23+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
24+
*vdmrp = vdmr;
25+
}
26+
27+
void testDmrArg3(const dmr_t vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
28+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
29+
*vdmrp = vdmr;
30+
}
31+
32+
// function return
33+
__dmr1024 testDmrRet1(int *ptr) { // expected-error {{invalid use of PPC MMA type}}
34+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
35+
return *vdmrp; // expected-error {{invalid use of PPC MMA type}}
36+
}
37+
38+
const dmr_t testDmrRet4(int *ptr) { // expected-error {{invalid use of PPC MMA type}}
39+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
40+
return *vdmrp; // expected-error {{invalid use of PPC MMA type}}
41+
}
42+
43+
// global
44+
__dmr1024 globalvdmr; // expected-error {{invalid use of PPC MMA type}}
45+
const __dmr1024 globalvdmr2; // expected-error {{invalid use of PPC MMA type}}
46+
__dmr1024 *globalvdmrp;
47+
const __dmr1024 *const globalvdmrp2;
48+
dmr_t globalvdmr_t; // expected-error {{invalid use of PPC MMA type}}
49+
50+
// struct field
51+
struct TestDmrStruct {
52+
int a;
53+
float b;
54+
__dmr1024 c; // expected-error {{invalid use of PPC MMA type}}
55+
__dmr1024 *vq;
56+
};
57+
58+
// operators
59+
int testDmrOperators1(int *ptr) {
60+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
61+
__dmr1024 vdmr1 = *(vdmrp + 0);
62+
__dmr1024 vdmr2 = *(vdmrp + 1);
63+
__dmr1024 vdmr3 = *(vdmrp + 2);
64+
if (vdmr1) // expected-error {{statement requires expression of scalar type ('__dmr1024' invalid)}}
65+
*(vdmrp + 10) = vdmr1;
66+
if (!vdmr2) // expected-error {{invalid argument type '__dmr1024' to unary expression}}
67+
*(vdmrp + 11) = vdmr3;
68+
int c1 = vdmr1 && vdmr2; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
69+
int c2 = vdmr2 == vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
70+
int c3 = vdmr2 < vdmr1; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
71+
return c1 || c2 || c3;
72+
}
73+
74+
void testDmrOperators2(int *ptr) {
75+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
76+
__dmr1024 vdmr1 = *(vdmrp + 0);
77+
__dmr1024 vdmr2 = *(vdmrp + 1);
78+
__dmr1024 vdmr3 = *(vdmrp + 2);
79+
vdmr1 = -vdmr1; // expected-error {{invalid argument type '__dmr1024' to unary expression}}
80+
vdmr2 = vdmr1 + vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
81+
vdmr2 = vdmr2 * vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
82+
vdmr3 = vdmr3 | vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
83+
vdmr3 = vdmr3 << 2; // expected-error {{invalid operands to binary expression ('__dmr1024' and 'int')}}
84+
*(vdmrp + 10) = vdmr1;
85+
*(vdmrp + 11) = vdmr2;
86+
*(vdmrp + 12) = vdmr3;
87+
}
88+
89+
vector unsigned char testDmrOperators3(int *ptr) {
90+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
91+
__dmr1024 vdmr1 = *(vdmrp + 0);
92+
__dmr1024 vdmr2 = *(vdmrp + 1);
93+
__dmr1024 vdmr3 = *(vdmrp + 2);
94+
vdmr1 ? *(vdmrp + 10) = vdmr2 : *(vdmrp + 11) = vdmr3; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
95+
vdmr2 = vdmr3;
96+
return vdmr2[1]; // expected-error {{subscripted value is not an array, pointer, or vector}}
97+
}
98+
99+
void testDmrOperators4(int v, void *ptr) {
100+
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
101+
__dmr1024 vdmr1 = (__dmr1024)v; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
102+
__dmr1024 vdmr2 = (__dmr1024)vdmrp; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
103+
}

clang/test/Sema/ppc-pair-mma-types.c

Lines changed: 0 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -2,110 +2,12 @@
22
// RUN: -target-cpu pwr10 %s -verify
33
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -fsyntax-only \
44
// RUN: -target-cpu pwr10 %s -verify
5-
// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -fsyntax-only \
6-
// RUN: -target-cpu future %s -verify
7-
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -fsyntax-only \
8-
// RUN: -target-cpu future %s -verify
95

106
// The use of PPC MMA types is strongly restricted. Non-pointer MMA variables
117
// can only be declared in functions and a limited number of operations are
128
// supported on these types. This test case checks that invalid uses of MMA
139
// types are correctly prevented.
1410

15-
// vector dmr
16-
17-
// typedef
18-
typedef __dmr1024 dmr_t;
19-
20-
// function argument
21-
void testDmrArg1(__dmr1024 vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
22-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
23-
*vdmrp = vdmr;
24-
}
25-
26-
void testDmrArg2(const __dmr1024 vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
27-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
28-
*vdmrp = vdmr;
29-
}
30-
31-
void testDmrArg3(const dmr_t vdmr, int *ptr) { // expected-error {{invalid use of PPC MMA type}}
32-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
33-
*vdmrp = vdmr;
34-
}
35-
36-
// function return
37-
__dmr1024 testDmrRet1(int *ptr) { // expected-error {{invalid use of PPC MMA type}}
38-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
39-
return *vdmrp; // expected-error {{invalid use of PPC MMA type}}
40-
}
41-
42-
const dmr_t testDmrRet4(int *ptr) { // expected-error {{invalid use of PPC MMA type}}
43-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
44-
return *vdmrp; // expected-error {{invalid use of PPC MMA type}}
45-
}
46-
47-
// global
48-
__dmr1024 globalvdmr; // expected-error {{invalid use of PPC MMA type}}
49-
const __dmr1024 globalvdmr2; // expected-error {{invalid use of PPC MMA type}}
50-
__dmr1024 *globalvdmrp;
51-
const __dmr1024 *const globalvdmrp2;
52-
dmr_t globalvdmr_t; // expected-error {{invalid use of PPC MMA type}}
53-
54-
// struct field
55-
struct TestDmrStruct {
56-
int a;
57-
float b;
58-
__dmr1024 c; // expected-error {{invalid use of PPC MMA type}}
59-
__dmr1024 *vq;
60-
};
61-
62-
// operators
63-
int testDmrOperators1(int *ptr) {
64-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
65-
__dmr1024 vdmr1 = *(vdmrp + 0);
66-
__dmr1024 vdmr2 = *(vdmrp + 1);
67-
__dmr1024 vdmr3 = *(vdmrp + 2);
68-
if (vdmr1) // expected-error {{statement requires expression of scalar type ('__dmr1024' invalid)}}
69-
*(vdmrp + 10) = vdmr1;
70-
if (!vdmr2) // expected-error {{invalid argument type '__dmr1024' to unary expression}}
71-
*(vdmrp + 11) = vdmr3;
72-
int c1 = vdmr1 && vdmr2; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
73-
int c2 = vdmr2 == vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
74-
int c3 = vdmr2 < vdmr1; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
75-
return c1 || c2 || c3;
76-
}
77-
78-
void testDmrOperators2(int *ptr) {
79-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
80-
__dmr1024 vdmr1 = *(vdmrp + 0);
81-
__dmr1024 vdmr2 = *(vdmrp + 1);
82-
__dmr1024 vdmr3 = *(vdmrp + 2);
83-
vdmr1 = -vdmr1; // expected-error {{invalid argument type '__dmr1024' to unary expression}}
84-
vdmr2 = vdmr1 + vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
85-
vdmr2 = vdmr2 * vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
86-
vdmr3 = vdmr3 | vdmr3; // expected-error {{invalid operands to binary expression ('__dmr1024' and '__dmr1024')}}
87-
vdmr3 = vdmr3 << 2; // expected-error {{invalid operands to binary expression ('__dmr1024' and 'int')}}
88-
*(vdmrp + 10) = vdmr1;
89-
*(vdmrp + 11) = vdmr2;
90-
*(vdmrp + 12) = vdmr3;
91-
}
92-
93-
vector unsigned char testDmrOperators3(int *ptr) {
94-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
95-
__dmr1024 vdmr1 = *(vdmrp + 0);
96-
__dmr1024 vdmr2 = *(vdmrp + 1);
97-
__dmr1024 vdmr3 = *(vdmrp + 2);
98-
vdmr1 ? *(vdmrp + 10) = vdmr2 : *(vdmrp + 11) = vdmr3; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
99-
vdmr2 = vdmr3;
100-
return vdmr2[1]; // expected-error {{subscripted value is not an array, pointer, or vector}}
101-
}
102-
103-
void testDmrOperators4(int v, void *ptr) {
104-
__dmr1024 *vdmrp = (__dmr1024 *)ptr;
105-
__dmr1024 vdmr1 = (__dmr1024)v; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
106-
__dmr1024 vdmr2 = (__dmr1024)vdmrp; // expected-error {{used type '__dmr1024' where arithmetic or pointer type is required}}
107-
}
108-
10911
// vector quad
11012

11113
// typedef

lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5027,7 +5027,7 @@ lldb::Encoding TypeSystemClang::GetEncoding(lldb::opaque_compiler_type_t type,
50275027
// PowerPC -- Matrix Multiply Assist
50285028
case clang::BuiltinType::VectorPair:
50295029
case clang::BuiltinType::VectorQuad:
5030-
case clang::BuiltinType::VectorDmr1024:
5030+
case clang::BuiltinType::DMR1024:
50315031
break;
50325032

50335033
// ARM -- Scalable Vector Extension

0 commit comments

Comments
 (0)