@@ -2159,7 +2159,7 @@ let AddedComplexity = 400, Predicates = [IsISA3_1, HasVSX] in {
2159
2159
(COPY_TO_REGCLASS $VRB, VSRC), 2)))>;
2160
2160
}
2161
2161
2162
- class XXEvalPattern <ValueType vt, dag pattern, bits<8> imm> :
2162
+ class xxevalPattern <ValueType vt, dag pattern, bits<8> imm> :
2163
2163
Pat<(vt pattern), (XXEVAL $vA, $vB, $vC, imm)> {}
2164
2164
2165
2165
class DagCondVNot<dag d, bit negate> {
@@ -2196,91 +2196,91 @@ class XXEvalBinaryPattern<ValueType vt, SDPatternOperator op, bit notResult = 0>
2196
2196
multiclass XXEvalVSelectWithXAnd<ValueType vt, bits<8> baseImm> {
2197
2197
// Multiclass for Ternary(A, X, and(B, C)) style patterns.
2198
2198
// Ternary(A, xor(B,C), and(B,C)) => imm: baseImm
2199
- def : XXEvalPattern <vt,
2199
+ def : xxevalPattern <vt,
2200
2200
(vselect vt:$vA, XXEvalBinaryPattern<vt, xor>.opPat, XXEvalBinaryPattern<vt, and>.opPat),
2201
2201
baseImm>;
2202
2202
// Ternary(A, nor(B,C), and(B,C)) => imm: baseImm + 2
2203
- def : XXEvalPattern <vt,
2203
+ def : xxevalPattern <vt,
2204
2204
(vselect vt:$vA, XXEvalBinaryPattern<vt, or, 1>.opPat, XXEvalBinaryPattern<vt, and>.opPat),
2205
2205
!add(baseImm, 2)>;
2206
2206
// Ternary(A, eqv(B,C), and(B,C)) => imm: baseImm + 3
2207
- def : XXEvalPattern <vt,
2207
+ def : xxevalPattern <vt,
2208
2208
(vselect vt:$vA, XXEvalBinaryPattern<vt, xor, 1>.opPat, XXEvalBinaryPattern<vt, and>.opPat),
2209
2209
!add(baseImm, 3)>;
2210
2210
// Ternary(A, not(C), and(B,C)) => imm: baseImm + 4
2211
- def : XXEvalPattern <vt,
2211
+ def : xxevalPattern <vt,
2212
2212
(vselect vt:$vA, XXEvalUnaryPattern<vt>.vnotC, XXEvalBinaryPattern<vt, and>.opPat),
2213
2213
!add(baseImm, 4)>;
2214
2214
// Ternary(A, not(B), and(B,C)) => imm: baseImm + 6
2215
- def : XXEvalPattern <vt,
2215
+ def : xxevalPattern <vt,
2216
2216
(vselect vt:$vA, XXEvalUnaryPattern<vt>.vnotB, XXEvalBinaryPattern<vt, and>.opPat),
2217
2217
!add(baseImm, 6)>;
2218
2218
}
2219
2219
2220
2220
multiclass XXEvalVSelectWithXB<ValueType vt, bits<8> baseImm>{
2221
2221
// Multiclass for Ternary(A, X, B) style patterns
2222
2222
// Ternary(A, and(B,C), B) => imm: baseImm
2223
- def : XXEvalPattern <vt,
2223
+ def : xxevalPattern <vt,
2224
2224
(vselect vt:$vA, XXEvalBinaryPattern<vt, and>.opPat, vt:$vB),
2225
2225
baseImm>;
2226
2226
// Ternary(A, nor(B,C), B) => imm: baseImm + 7
2227
- def : XXEvalPattern <vt,
2227
+ def : xxevalPattern <vt,
2228
2228
(vselect vt:$vA, XXEvalBinaryPattern<vt, or, 1>.opPat, vt:$vB),
2229
2229
!add(baseImm, 7)>;
2230
2230
// Ternary(A, eqv(B,C), B) => imm: baseImm + 8
2231
- def : XXEvalPattern <vt,
2231
+ def : xxevalPattern <vt,
2232
2232
(vselect vt:$vA, XXEvalBinaryPattern<vt, xor, 1>.opPat, vt:$vB),
2233
2233
!add(baseImm, 8)>;
2234
2234
// Ternary(A, not(C), B) => imm: baseImm + 9
2235
- def : XXEvalPattern <vt,
2235
+ def : xxevalPattern <vt,
2236
2236
(vselect vt:$vA, XXEvalUnaryPattern<vt>.vnotC, vt:$vB),
2237
2237
!add(baseImm, 9)>;
2238
2238
// Ternary(A, nand(B,C), B) => imm: baseImm + 13
2239
- def : XXEvalPattern <vt,
2239
+ def : xxevalPattern <vt,
2240
2240
(vselect vt:$vA, XXEvalBinaryPattern<vt, and, 1>.opPat, vt:$vB),
2241
2241
!add(baseImm, 13)>;
2242
2242
}
2243
2243
2244
2244
multiclass XXEvalVSelectWithXC<ValueType vt, bits<8> baseImm>{
2245
2245
// Multiclass for Ternary(A, X, C) style patterns
2246
2246
// Ternary(A, and(B,C), C) => imm: baseImm
2247
- def : XXEvalPattern <vt,
2247
+ def : xxevalPattern <vt,
2248
2248
(vselect vt:$vA, XXEvalBinaryPattern<vt, and>.opPat, vt:$vC),
2249
2249
baseImm>;
2250
2250
// Ternary(A, nor(B,C), C) => imm: baseImm + 7
2251
- def : XXEvalPattern <vt,
2251
+ def : xxevalPattern <vt,
2252
2252
(vselect vt:$vA, XXEvalBinaryPattern<vt, or, 1>.opPat, vt:$vC),
2253
2253
!add(baseImm, 7)>;
2254
2254
// Ternary(A, eqv(B,C), C) => imm: baseImm + 8
2255
- def : XXEvalPattern <vt,
2255
+ def : xxevalPattern <vt,
2256
2256
(vselect vt:$vA, XXEvalBinaryPattern<vt, xor, 1>.opPat, vt:$vC),
2257
2257
!add(baseImm, 8)>;
2258
2258
// Ternary(A, nand(B,C), C) => imm: baseImm + 13
2259
- def : XXEvalPattern <vt,
2259
+ def : xxevalPattern <vt,
2260
2260
(vselect vt:$vA, XXEvalBinaryPattern<vt, and, 1>.opPat, vt:$vC),
2261
2261
!add(baseImm, 13)>;
2262
2262
}
2263
2263
2264
2264
multiclass XXEvalVSelectWithXXor<ValueType vt, bits<8> baseImm>{
2265
2265
// Multiclass for Ternary(A, X, xor(B,C)) style patterns
2266
2266
// Ternary(A, and(B,C), xor(B,C)) => imm: baseImm
2267
- def : XXEvalPattern <vt,
2267
+ def : xxevalPattern <vt,
2268
2268
(vselect vt:$vA, XXEvalBinaryPattern<vt, and>.opPat, XXEvalBinaryPattern<vt, xor>.opPat),
2269
2269
baseImm>;
2270
2270
// Ternary(A, B, xor(B,C)) => imm: baseImm + 2
2271
- def : XXEvalPattern <vt,
2271
+ def : xxevalPattern <vt,
2272
2272
(vselect vt:$vA, vt:$vB, XXEvalBinaryPattern<vt, xor>.opPat),
2273
2273
!add(baseImm, 2)>;
2274
2274
// Ternary(A, C, xor(B,C)) => imm: baseImm + 4
2275
- def : XXEvalPattern <vt,
2275
+ def : xxevalPattern <vt,
2276
2276
(vselect vt:$vA, vt:$vC, XXEvalBinaryPattern<vt, xor>.opPat),
2277
2277
!add(baseImm, 4)>;
2278
2278
// Ternary(A, or(B,C), xor(B,C)) => imm: baseImm + 6
2279
- def : XXEvalPattern <vt,
2279
+ def : xxevalPattern <vt,
2280
2280
(vselect vt:$vA, XXEvalBinaryPattern<vt, or>.opPat, XXEvalBinaryPattern<vt, xor>.opPat),
2281
2281
!add(baseImm, 6)>;
2282
2282
// Ternary(A, nor(B,C), xor(B,C)) => imm: baseImm + 7
2283
- def : XXEvalPattern <vt,
2283
+ def : xxevalPattern <vt,
2284
2284
(vselect vt:$vA, XXEvalBinaryPattern<vt, or, 1>.opPat, XXEvalBinaryPattern<vt, xor>.opPat),
2285
2285
!add(baseImm, 7)>;
2286
2286
}
@@ -2315,83 +2315,83 @@ let Predicates = [PrefixInstrs, HasP10Vector] in {
2315
2315
// Anonymous patterns for XXEVAL
2316
2316
// AND
2317
2317
// and(A, B, C)
2318
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 1>;
2318
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 1>;
2319
2319
// and(A, xor(B, C))
2320
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 6>;
2320
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 6>;
2321
2321
// and(A, or(B, C))
2322
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 7>;
2322
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 7>;
2323
2323
// and(A, nor(B, C))
2324
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (vnot (or v4i32:$vB, v4i32:$vC))), 8>;
2324
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (vnot (or v4i32:$vB, v4i32:$vC))), 8>;
2325
2325
// and(A, eqv(B, C))
2326
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (vnot (xor v4i32:$vB, v4i32:$vC))), 9>;
2326
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (vnot (xor v4i32:$vB, v4i32:$vC))), 9>;
2327
2327
// and(A, nand(B, C))
2328
- def : XXEvalPattern <v4i32, (and v4i32:$vA, (vnot (and v4i32:$vB, v4i32:$vC))), 14>;
2328
+ def : xxevalPattern <v4i32, (and v4i32:$vA, (vnot (and v4i32:$vB, v4i32:$vC))), 14>;
2329
2329
2330
2330
// NAND
2331
2331
// nand(A, B, C)
2332
- def : XXEvalPattern <v4i32, (vnot (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC))),
2332
+ def : xxevalPattern <v4i32, (vnot (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC))),
2333
2333
!sub(255, 1)>;
2334
2334
// nand(A, xor(B, C))
2335
- def : XXEvalPattern <v4i32, (vnot (and v4i32:$vA, (xor v4i32:$vB, v4i32:$vC))),
2335
+ def : xxevalPattern <v4i32, (vnot (and v4i32:$vA, (xor v4i32:$vB, v4i32:$vC))),
2336
2336
!sub(255, 6)>;
2337
2337
// nand(A, or(B, C))
2338
- def : XXEvalPattern <v4i32, (vnot (and v4i32:$vA, (or v4i32:$vB, v4i32:$vC))),
2338
+ def : xxevalPattern <v4i32, (vnot (and v4i32:$vA, (or v4i32:$vB, v4i32:$vC))),
2339
2339
!sub(255, 7)>;
2340
2340
// nand(A, nor(B, C))
2341
- def : XXEvalPattern <v4i32, (or (vnot v4i32:$vA), (or v4i32:$vB, v4i32:$vC)),
2341
+ def : xxevalPattern <v4i32, (or (vnot v4i32:$vA), (or v4i32:$vB, v4i32:$vC)),
2342
2342
!sub(255, 8)>;
2343
2343
// nand(A, eqv(B, C))
2344
- def : XXEvalPattern <v4i32, (or (vnot v4i32:$vA), (xor v4i32:$vB, v4i32:$vC)),
2344
+ def : xxevalPattern <v4i32, (or (vnot v4i32:$vA), (xor v4i32:$vB, v4i32:$vC)),
2345
2345
!sub(255, 9)>;
2346
2346
// nand(A, nand(B, C))
2347
- def : XXEvalPattern <v4i32, (or (vnot v4i32:$vA), (and v4i32:$vB, v4i32:$vC)),
2347
+ def : xxevalPattern <v4i32, (or (vnot v4i32:$vA), (and v4i32:$vB, v4i32:$vC)),
2348
2348
!sub(255, 14)>;
2349
2349
2350
2350
// EQV
2351
2351
// (eqv A, B, C)
2352
- def : XXEvalPattern <v4i32, (or (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC)),
2352
+ def : xxevalPattern <v4i32, (or (and v4i32:$vA, (and v4i32:$vB, v4i32:$vC)),
2353
2353
(vnot (or v4i32:$vA, (or v4i32:$vB, v4i32:$vC)))),
2354
2354
150>;
2355
2355
// (eqv A, (and B, C))
2356
- def : XXEvalPattern <v4i32, (vnot (xor v4i32:$vA, (and v4i32:$vB, v4i32:$vC))), 225>;
2356
+ def : xxevalPattern <v4i32, (vnot (xor v4i32:$vA, (and v4i32:$vB, v4i32:$vC))), 225>;
2357
2357
// (eqv A, (or B, C))
2358
- def : XXEvalPattern <v4i32, (vnot (xor v4i32:$vA, (or v4i32:$vB, v4i32:$vC))), 135>;
2358
+ def : xxevalPattern <v4i32, (vnot (xor v4i32:$vA, (or v4i32:$vB, v4i32:$vC))), 135>;
2359
2359
2360
2360
// NOR
2361
2361
// (nor A, B, C)
2362
- def : XXEvalPattern <v4i32, (vnot (or v4i32:$vA, (or v4i32:$vB, v4i32:$vC))), 128>;
2362
+ def : xxevalPattern <v4i32, (vnot (or v4i32:$vA, (or v4i32:$vB, v4i32:$vC))), 128>;
2363
2363
// (nor A, (and B, C))
2364
- def : XXEvalPattern <v4i32, (vnot (or v4i32:$vA, (and v4i32:$vB, v4i32:$vC))), 224>;
2364
+ def : xxevalPattern <v4i32, (vnot (or v4i32:$vA, (and v4i32:$vB, v4i32:$vC))), 224>;
2365
2365
// (nor A, (eqv B, C))
2366
- def : XXEvalPattern <v4i32, (and (vnot v4i32:$vA), (xor v4i32:$vB, v4i32:$vC)), 96>;
2366
+ def : xxevalPattern <v4i32, (and (vnot v4i32:$vA), (xor v4i32:$vB, v4i32:$vC)), 96>;
2367
2367
// (nor A, (nand B, C))
2368
- def : XXEvalPattern <v4i32, (and (vnot v4i32:$vA), (and v4i32:$vB, v4i32:$vC)), 16>;
2368
+ def : xxevalPattern <v4i32, (and (vnot v4i32:$vA), (and v4i32:$vB, v4i32:$vC)), 16>;
2369
2369
// (nor A, (nor B, C))
2370
- def : XXEvalPattern <v4i32, (and (vnot v4i32:$vA), (or v4i32:$vB, v4i32:$vC)), 112>;
2370
+ def : xxevalPattern <v4i32, (and (vnot v4i32:$vA), (or v4i32:$vB, v4i32:$vC)), 112>;
2371
2371
// (nor A, (xor B, C))
2372
- def : XXEvalPattern <v4i32, (vnot (or v4i32:$vA, (xor v4i32:$vB, v4i32:$vC))), 144>;
2372
+ def : xxevalPattern <v4i32, (vnot (or v4i32:$vA, (xor v4i32:$vB, v4i32:$vC))), 144>;
2373
2373
2374
2374
// OR
2375
2375
// (or A, B, C)
2376
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 127>;
2376
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 127>;
2377
2377
// (or A, (and B, C))
2378
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 31>;
2378
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 31>;
2379
2379
// (or A, (eqv B, C))
2380
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (vnot (xor v4i32:$vB, v4i32:$vC))), 159>;
2380
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (vnot (xor v4i32:$vB, v4i32:$vC))), 159>;
2381
2381
// (or A, (nand B, C))
2382
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (vnot (and v4i32:$vB, v4i32:$vC))), 239>;
2382
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (vnot (and v4i32:$vB, v4i32:$vC))), 239>;
2383
2383
// (or A, (nor B, C))
2384
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (vnot (or v4i32:$vB, v4i32:$vC))), 143>;
2384
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (vnot (or v4i32:$vB, v4i32:$vC))), 143>;
2385
2385
// (or A, (xor B, C))
2386
- def : XXEvalPattern <v4i32, (or v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 111>;
2386
+ def : xxevalPattern <v4i32, (or v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 111>;
2387
2387
2388
2388
// XOR
2389
2389
// (xor A, B, C)
2390
- def : XXEvalPattern <v4i32, (xor v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 105>;
2390
+ def : xxevalPattern <v4i32, (xor v4i32:$vA, (xor v4i32:$vB, v4i32:$vC)), 105>;
2391
2391
// (xor A, (and B, C))
2392
- def : XXEvalPattern <v4i32, (xor v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 30>;
2392
+ def : xxevalPattern <v4i32, (xor v4i32:$vA, (and v4i32:$vB, v4i32:$vC)), 30>;
2393
2393
// (xor A, (or B, C))
2394
- def : XXEvalPattern <v4i32, (xor v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 120>;
2394
+ def : xxevalPattern <v4i32, (xor v4i32:$vA, (or v4i32:$vB, v4i32:$vC)), 120>;
2395
2395
2396
2396
// Utilize xxeval instruction for ternary vector expressions.
2397
2397
defm : XXEvalVSelectWithXAnd<v4i32, 22>;
0 commit comments