@@ -1488,37 +1488,25 @@ class getSDWADstForVT<ValueType VT> {
1488
1488
// instructions for the given VT.
1489
1489
class getVOPSrc0ForVT<ValueType VT, bit IsTrue16, bit IsFake16 = 1> {
1490
1490
RegisterOperand ret =
1491
- !if(VT.isFP,
1492
- !if(!eq(VT.Size, 64),
1493
- VSrc_f64,
1494
- !if(!or(!eq(VT.Value, f16.Value), !eq(VT.Value, bf16.Value)),
1495
- !if(IsTrue16,
1496
- !if(IsFake16, VSrcFake16_f16_Lo128, VSrcT_f16_Lo128),
1497
- VSrc_f16
1498
- ),
1499
- !if(!or(!eq(VT.Value, v2f16.Value), !eq(VT.Value, v2bf16.Value)),
1500
- VSrc_v2f16,
1501
- !if(!or(!eq(VT.Value, v4f16.Value), !eq(VT.Value, v4bf16.Value)),
1502
- AVSrc_64,
1503
- VSrc_f32
1504
- )
1505
- )
1506
- )
1507
- ),
1508
- !if(!eq(VT.Size, 64),
1509
- VSrc_b64,
1510
- !if(!eq(VT.Value, i16.Value),
1511
- !if(IsTrue16,
1512
- !if(IsFake16, VSrcFake16_b16_Lo128, VSrcT_b16_Lo128),
1513
- VSrc_b16
1514
- ),
1515
- !if(!eq(VT.Value, v2i16.Value),
1516
- VSrc_v2b16,
1517
- VSrc_b32
1518
- )
1519
- )
1520
- )
1521
- );
1491
+ !cond(!eq(VT, i64) : VSrc_b64,
1492
+ !eq(VT, f64) : VSrc_f64,
1493
+ !eq(VT, i32) : VSrc_b32,
1494
+ !eq(VT, f32) : VSrc_f32,
1495
+ !eq(VT, i16) : !if(IsTrue16,
1496
+ !if(IsFake16, VSrcFake16_b16_Lo128, VSrcT_b16_Lo128),
1497
+ VSrc_b16),
1498
+ !eq(VT, f16) : !if(IsTrue16,
1499
+ !if(IsFake16, VSrcFake16_f16_Lo128, VSrcT_f16_Lo128),
1500
+ VSrc_f16),
1501
+ !eq(VT, bf16) : !if(IsTrue16,
1502
+ !if(IsFake16, VSrcFake16_f16_Lo128, VSrcT_f16_Lo128),
1503
+ VSrc_f16),
1504
+ !eq(VT, v2i16) : VSrc_v2b16,
1505
+ !eq(VT, v2f16) : VSrc_v2f16,
1506
+ !eq(VT, v2bf16) : VSrc_v2f16,
1507
+ !eq(VT, v4f16) : AVSrc_64,
1508
+ !eq(VT, v4bf16) : AVSrc_64,
1509
+ 1 : VSrc_b32);
1522
1510
}
1523
1511
1524
1512
class getSOPSrcForVT<ValueType VT> {
0 commit comments