|
14 | 14 | // ARM Instruction Predicate Definitions. |
15 | 15 | // |
16 | 16 | def HasV8_1a : Predicate<"Subtarget->hasV8_1aOps()">, |
17 | | - AssemblerPredicate<"HasV8_1aOps", "armv8.1a">; |
| 17 | + AssemblerPredicate<(all_of HasV8_1aOps), "armv8.1a">; |
18 | 18 | def HasV8_2a : Predicate<"Subtarget->hasV8_2aOps()">, |
19 | | - AssemblerPredicate<"HasV8_2aOps", "armv8.2a">; |
| 19 | + AssemblerPredicate<(all_of HasV8_2aOps), "armv8.2a">; |
20 | 20 | def HasV8_3a : Predicate<"Subtarget->hasV8_3aOps()">, |
21 | | - AssemblerPredicate<"HasV8_3aOps", "armv8.3a">; |
| 21 | + AssemblerPredicate<(all_of HasV8_3aOps), "armv8.3a">; |
22 | 22 | def HasV8_4a : Predicate<"Subtarget->hasV8_4aOps()">, |
23 | | - AssemblerPredicate<"HasV8_4aOps", "armv8.4a">; |
| 23 | + AssemblerPredicate<(all_of HasV8_4aOps), "armv8.4a">; |
24 | 24 | def HasV8_5a : Predicate<"Subtarget->hasV8_5aOps()">, |
25 | | - AssemblerPredicate<"HasV8_5aOps", "armv8.5a">; |
| 25 | + AssemblerPredicate<(all_of HasV8_5aOps), "armv8.5a">; |
26 | 26 | def HasVH : Predicate<"Subtarget->hasVH()">, |
27 | | - AssemblerPredicate<"FeatureVH", "vh">; |
| 27 | + AssemblerPredicate<(all_of FeatureVH), "vh">; |
28 | 28 |
|
29 | 29 | def HasLOR : Predicate<"Subtarget->hasLOR()">, |
30 | | - AssemblerPredicate<"FeatureLOR", "lor">; |
| 30 | + AssemblerPredicate<(all_of FeatureLOR), "lor">; |
31 | 31 |
|
32 | 32 | def HasPA : Predicate<"Subtarget->hasPA()">, |
33 | | - AssemblerPredicate<"FeaturePA", "pa">; |
| 33 | + AssemblerPredicate<(all_of FeaturePA), "pa">; |
34 | 34 |
|
35 | 35 | def HasJS : Predicate<"Subtarget->hasJS()">, |
36 | | - AssemblerPredicate<"FeatureJS", "jsconv">; |
| 36 | + AssemblerPredicate<(all_of FeatureJS), "jsconv">; |
37 | 37 |
|
38 | 38 | def HasCCIDX : Predicate<"Subtarget->hasCCIDX()">, |
39 | | - AssemblerPredicate<"FeatureCCIDX", "ccidx">; |
| 39 | + AssemblerPredicate<(all_of FeatureCCIDX), "ccidx">; |
40 | 40 |
|
41 | 41 | def HasComplxNum : Predicate<"Subtarget->hasComplxNum()">, |
42 | | - AssemblerPredicate<"FeatureComplxNum", "complxnum">; |
| 42 | + AssemblerPredicate<(all_of FeatureComplxNum), "complxnum">; |
43 | 43 |
|
44 | 44 | def HasNV : Predicate<"Subtarget->hasNV()">, |
45 | | - AssemblerPredicate<"FeatureNV", "nv">; |
| 45 | + AssemblerPredicate<(all_of FeatureNV), "nv">; |
46 | 46 |
|
47 | 47 | def HasRASv8_4 : Predicate<"Subtarget->hasRASv8_4()">, |
48 | | - AssemblerPredicate<"FeatureRASv8_4", "rasv8_4">; |
| 48 | + AssemblerPredicate<(all_of FeatureRASv8_4), "rasv8_4">; |
49 | 49 |
|
50 | 50 | def HasMPAM : Predicate<"Subtarget->hasMPAM()">, |
51 | | - AssemblerPredicate<"FeatureMPAM", "mpam">; |
| 51 | + AssemblerPredicate<(all_of FeatureMPAM), "mpam">; |
52 | 52 |
|
53 | 53 | def HasDIT : Predicate<"Subtarget->hasDIT()">, |
54 | | - AssemblerPredicate<"FeatureDIT", "dit">; |
| 54 | + AssemblerPredicate<(all_of FeatureDIT), "dit">; |
55 | 55 |
|
56 | 56 | def HasTRACEV8_4 : Predicate<"Subtarget->hasTRACEV8_4()">, |
57 | | - AssemblerPredicate<"FeatureTRACEV8_4", "tracev8.4">; |
| 57 | + AssemblerPredicate<(all_of FeatureTRACEV8_4), "tracev8.4">; |
58 | 58 |
|
59 | 59 | def HasAM : Predicate<"Subtarget->hasAM()">, |
60 | | - AssemblerPredicate<"FeatureAM", "am">; |
| 60 | + AssemblerPredicate<(all_of FeatureAM), "am">; |
61 | 61 |
|
62 | 62 | def HasSEL2 : Predicate<"Subtarget->hasSEL2()">, |
63 | | - AssemblerPredicate<"FeatureSEL2", "sel2">; |
| 63 | + AssemblerPredicate<(all_of FeatureSEL2), "sel2">; |
64 | 64 |
|
65 | 65 | def HasPMU : Predicate<"Subtarget->hasPMU()">, |
66 | | - AssemblerPredicate<"FeaturePMU", "pmu">; |
| 66 | + AssemblerPredicate<(all_of FeaturePMU), "pmu">; |
67 | 67 |
|
68 | 68 | def HasTLB_RMI : Predicate<"Subtarget->hasTLB_RMI()">, |
69 | | - AssemblerPredicate<"FeatureTLB_RMI", "tlb-rmi">; |
| 69 | + AssemblerPredicate<(all_of FeatureTLB_RMI), "tlb-rmi">; |
70 | 70 |
|
71 | 71 | def HasFMI : Predicate<"Subtarget->hasFMI()">, |
72 | | - AssemblerPredicate<"FeatureFMI", "fmi">; |
| 72 | + AssemblerPredicate<(all_of FeatureFMI), "fmi">; |
73 | 73 |
|
74 | 74 | def HasRCPC_IMMO : Predicate<"Subtarget->hasRCPCImm()">, |
75 | | - AssemblerPredicate<"FeatureRCPC_IMMO", "rcpc-immo">; |
| 75 | + AssemblerPredicate<(all_of FeatureRCPC_IMMO), "rcpc-immo">; |
76 | 76 |
|
77 | 77 | def HasFPARMv8 : Predicate<"Subtarget->hasFPARMv8()">, |
78 | | - AssemblerPredicate<"FeatureFPARMv8", "fp-armv8">; |
| 78 | + AssemblerPredicate<(all_of FeatureFPARMv8), "fp-armv8">; |
79 | 79 | def HasNEON : Predicate<"Subtarget->hasNEON()">, |
80 | | - AssemblerPredicate<"FeatureNEON", "neon">; |
| 80 | + AssemblerPredicate<(all_of FeatureNEON), "neon">; |
81 | 81 | def HasCrypto : Predicate<"Subtarget->hasCrypto()">, |
82 | | - AssemblerPredicate<"FeatureCrypto", "crypto">; |
| 82 | + AssemblerPredicate<(all_of FeatureCrypto), "crypto">; |
83 | 83 | def HasSM4 : Predicate<"Subtarget->hasSM4()">, |
84 | | - AssemblerPredicate<"FeatureSM4", "sm4">; |
| 84 | + AssemblerPredicate<(all_of FeatureSM4), "sm4">; |
85 | 85 | def HasSHA3 : Predicate<"Subtarget->hasSHA3()">, |
86 | | - AssemblerPredicate<"FeatureSHA3", "sha3">; |
| 86 | + AssemblerPredicate<(all_of FeatureSHA3), "sha3">; |
87 | 87 | def HasSHA2 : Predicate<"Subtarget->hasSHA2()">, |
88 | | - AssemblerPredicate<"FeatureSHA2", "sha2">; |
| 88 | + AssemblerPredicate<(all_of FeatureSHA2), "sha2">; |
89 | 89 | def HasAES : Predicate<"Subtarget->hasAES()">, |
90 | | - AssemblerPredicate<"FeatureAES", "aes">; |
| 90 | + AssemblerPredicate<(all_of FeatureAES), "aes">; |
91 | 91 | def HasDotProd : Predicate<"Subtarget->hasDotProd()">, |
92 | | - AssemblerPredicate<"FeatureDotProd", "dotprod">; |
| 92 | + AssemblerPredicate<(all_of FeatureDotProd), "dotprod">; |
93 | 93 | def HasCRC : Predicate<"Subtarget->hasCRC()">, |
94 | | - AssemblerPredicate<"FeatureCRC", "crc">; |
| 94 | + AssemblerPredicate<(all_of FeatureCRC), "crc">; |
95 | 95 | def HasLSE : Predicate<"Subtarget->hasLSE()">, |
96 | | - AssemblerPredicate<"FeatureLSE", "lse">; |
| 96 | + AssemblerPredicate<(all_of FeatureLSE), "lse">; |
97 | 97 | def HasRAS : Predicate<"Subtarget->hasRAS()">, |
98 | | - AssemblerPredicate<"FeatureRAS", "ras">; |
| 98 | + AssemblerPredicate<(all_of FeatureRAS), "ras">; |
99 | 99 | def HasRDM : Predicate<"Subtarget->hasRDM()">, |
100 | | - AssemblerPredicate<"FeatureRDM", "rdm">; |
| 100 | + AssemblerPredicate<(all_of FeatureRDM), "rdm">; |
101 | 101 | def HasPerfMon : Predicate<"Subtarget->hasPerfMon()">; |
102 | 102 | def HasFullFP16 : Predicate<"Subtarget->hasFullFP16()">, |
103 | | - AssemblerPredicate<"FeatureFullFP16", "fullfp16">; |
| 103 | + AssemblerPredicate<(all_of FeatureFullFP16), "fullfp16">; |
104 | 104 | def HasFP16FML : Predicate<"Subtarget->hasFP16FML()">, |
105 | | - AssemblerPredicate<"FeatureFP16FML", "fp16fml">; |
| 105 | + AssemblerPredicate<(all_of FeatureFP16FML), "fp16fml">; |
106 | 106 | def HasSPE : Predicate<"Subtarget->hasSPE()">, |
107 | | - AssemblerPredicate<"FeatureSPE", "spe">; |
| 107 | + AssemblerPredicate<(all_of FeatureSPE), "spe">; |
108 | 108 | def HasFuseAES : Predicate<"Subtarget->hasFuseAES()">, |
109 | | - AssemblerPredicate<"FeatureFuseAES", |
| 109 | + AssemblerPredicate<(all_of FeatureFuseAES), |
110 | 110 | "fuse-aes">; |
111 | 111 | def HasSVE : Predicate<"Subtarget->hasSVE()">, |
112 | | - AssemblerPredicate<"FeatureSVE", "sve">; |
| 112 | + AssemblerPredicate<(all_of FeatureSVE), "sve">; |
113 | 113 | def HasSVE2 : Predicate<"Subtarget->hasSVE2()">, |
114 | | - AssemblerPredicate<"FeatureSVE2", "sve2">; |
| 114 | + AssemblerPredicate<(all_of FeatureSVE2), "sve2">; |
115 | 115 | def HasSVE2AES : Predicate<"Subtarget->hasSVE2AES()">, |
116 | | - AssemblerPredicate<"FeatureSVE2AES", "sve2-aes">; |
| 116 | + AssemblerPredicate<(all_of FeatureSVE2AES), "sve2-aes">; |
117 | 117 | def HasSVE2SM4 : Predicate<"Subtarget->hasSVE2SM4()">, |
118 | | - AssemblerPredicate<"FeatureSVE2SM4", "sve2-sm4">; |
| 118 | + AssemblerPredicate<(all_of FeatureSVE2SM4), "sve2-sm4">; |
119 | 119 | def HasSVE2SHA3 : Predicate<"Subtarget->hasSVE2SHA3()">, |
120 | | - AssemblerPredicate<"FeatureSVE2SHA3", "sve2-sha3">; |
| 120 | + AssemblerPredicate<(all_of FeatureSVE2SHA3), "sve2-sha3">; |
121 | 121 | def HasSVE2BitPerm : Predicate<"Subtarget->hasSVE2BitPerm()">, |
122 | | - AssemblerPredicate<"FeatureSVE2BitPerm", "sve2-bitperm">; |
| 122 | + AssemblerPredicate<(all_of FeatureSVE2BitPerm), "sve2-bitperm">; |
123 | 123 | def HasRCPC : Predicate<"Subtarget->hasRCPC()">, |
124 | | - AssemblerPredicate<"FeatureRCPC", "rcpc">; |
| 124 | + AssemblerPredicate<(all_of FeatureRCPC), "rcpc">; |
125 | 125 | def HasAltNZCV : Predicate<"Subtarget->hasAlternativeNZCV()">, |
126 | | - AssemblerPredicate<"FeatureAltFPCmp", "altnzcv">; |
| 126 | + AssemblerPredicate<(all_of FeatureAltFPCmp), "altnzcv">; |
127 | 127 | def HasFRInt3264 : Predicate<"Subtarget->hasFRInt3264()">, |
128 | | - AssemblerPredicate<"FeatureFRInt3264", "frint3264">; |
| 128 | + AssemblerPredicate<(all_of FeatureFRInt3264), "frint3264">; |
129 | 129 | def HasSB : Predicate<"Subtarget->hasSB()">, |
130 | | - AssemblerPredicate<"FeatureSB", "sb">; |
| 130 | + AssemblerPredicate<(all_of FeatureSB), "sb">; |
131 | 131 | def HasPredRes : Predicate<"Subtarget->hasPredRes()">, |
132 | | - AssemblerPredicate<"FeaturePredRes", "predres">; |
| 132 | + AssemblerPredicate<(all_of FeaturePredRes), "predres">; |
133 | 133 | def HasCCDP : Predicate<"Subtarget->hasCCDP()">, |
134 | | - AssemblerPredicate<"FeatureCacheDeepPersist", "ccdp">; |
| 134 | + AssemblerPredicate<(all_of FeatureCacheDeepPersist), "ccdp">; |
135 | 135 | def HasBTI : Predicate<"Subtarget->hasBTI()">, |
136 | | - AssemblerPredicate<"FeatureBranchTargetId", "bti">; |
| 136 | + AssemblerPredicate<(all_of FeatureBranchTargetId), "bti">; |
137 | 137 | def HasMTE : Predicate<"Subtarget->hasMTE()">, |
138 | | - AssemblerPredicate<"FeatureMTE", "mte">; |
| 138 | + AssemblerPredicate<(all_of FeatureMTE), "mte">; |
139 | 139 | def HasTME : Predicate<"Subtarget->hasTME()">, |
140 | | - AssemblerPredicate<"FeatureTME", "tme">; |
| 140 | + AssemblerPredicate<(all_of FeatureTME), "tme">; |
141 | 141 | def HasETE : Predicate<"Subtarget->hasETE()">, |
142 | | - AssemblerPredicate<"FeatureETE", "ete">; |
| 142 | + AssemblerPredicate<(all_of FeatureETE), "ete">; |
143 | 143 | def HasTRBE : Predicate<"Subtarget->hasTRBE()">, |
144 | | - AssemblerPredicate<"FeatureTRBE", "trbe">; |
| 144 | + AssemblerPredicate<(all_of FeatureTRBE), "trbe">; |
145 | 145 | def IsLE : Predicate<"Subtarget->isLittleEndian()">; |
146 | 146 | def IsBE : Predicate<"!Subtarget->isLittleEndian()">; |
147 | 147 | def IsWindows : Predicate<"Subtarget->isTargetWindows()">; |
148 | 148 | def UseAlternateSExtLoadCVTF32 |
149 | 149 | : Predicate<"Subtarget->useAlternateSExtLoadCVTF32Pattern()">; |
150 | 150 |
|
151 | 151 | def UseNegativeImmediates |
152 | | - : Predicate<"false">, AssemblerPredicate<"!FeatureNoNegativeImmediates", |
| 152 | + : Predicate<"false">, AssemblerPredicate<(all_of (not FeatureNoNegativeImmediates)), |
153 | 153 | "NegativeImmediates">; |
154 | 154 |
|
155 | 155 | def AArch64LocalRecover : SDNode<"ISD::LOCAL_RECOVER", |
|
0 commit comments