@@ -1624,19 +1624,19 @@ multiclass avx512_perm_i_sizes<bits<8> opc, string OpcodeStr,
1624
1624
X86FoldableSchedWrite sched,
1625
1625
AVX512VLVectorVTInfo VTInfo,
1626
1626
AVX512VLVectorVTInfo ShuffleMask> {
1627
- defm NAME: avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info512,
1628
- ShuffleMask.info512>,
1629
- avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info512,
1630
- ShuffleMask.info512>, EVEX_V512;
1627
+ defm NAME#Z : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info512,
1628
+ ShuffleMask.info512>,
1629
+ avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info512,
1630
+ ShuffleMask.info512>, EVEX_V512;
1631
1631
let Predicates = [HasVLX] in {
1632
- defm NAME#128 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info128,
1633
- ShuffleMask.info128>,
1634
- avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info128,
1635
- ShuffleMask.info128>, EVEX_V128;
1636
- defm NAME#256 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info256,
1637
- ShuffleMask.info256>,
1638
- avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info256,
1639
- ShuffleMask.info256>, EVEX_V256;
1632
+ defm NAME#Z128 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info128,
1633
+ ShuffleMask.info128>,
1634
+ avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info128,
1635
+ ShuffleMask.info128>, EVEX_V128;
1636
+ defm NAME#Z256 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info256,
1637
+ ShuffleMask.info256>,
1638
+ avx512_perm_i_mb<opc, OpcodeStr, sched, VTInfo.info256,
1639
+ ShuffleMask.info256>, EVEX_V256;
1640
1640
}
1641
1641
}
1642
1642
@@ -1646,13 +1646,13 @@ multiclass avx512_perm_i_sizes_bw<bits<8> opc, string OpcodeStr,
1646
1646
AVX512VLVectorVTInfo Idx,
1647
1647
Predicate Prd> {
1648
1648
let Predicates = [Prd] in
1649
- defm NAME: avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info512,
1650
- Idx.info512>, EVEX_V512;
1649
+ defm NAME#Z : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info512,
1650
+ Idx.info512>, EVEX_V512;
1651
1651
let Predicates = [Prd, HasVLX] in {
1652
- defm NAME#128 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info128,
1653
- Idx.info128>, EVEX_V128;
1654
- defm NAME#256 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info256,
1655
- Idx.info256>, EVEX_V256;
1652
+ defm NAME#Z128 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info128,
1653
+ Idx.info128>, EVEX_V128;
1654
+ defm NAME#Z256 : avx512_perm_i<opc, OpcodeStr, sched, VTInfo.info256,
1655
+ Idx.info256>, EVEX_V256;
1656
1656
}
1657
1657
}
1658
1658
@@ -1702,9 +1702,9 @@ multiclass avx512_perm_i_lowering<string InstrStr, X86VectorVTInfo _,
1702
1702
}
1703
1703
1704
1704
// TODO: Should we add more casts? The vXi64 case is common due to ABI.
1705
- defm : avx512_perm_i_lowering<"VPERMI2PS ", v16f32_info, v16i32_info, v8i64_info>;
1706
- defm : avx512_perm_i_lowering<"VPERMI2PS256 ", v8f32x_info, v8i32x_info, v4i64x_info>;
1707
- defm : avx512_perm_i_lowering<"VPERMI2PS128 ", v4f32x_info, v4i32x_info, v2i64x_info>;
1705
+ defm : avx512_perm_i_lowering<"VPERMI2PSZ ", v16f32_info, v16i32_info, v8i64_info>;
1706
+ defm : avx512_perm_i_lowering<"VPERMI2PSZ256 ", v8f32x_info, v8i32x_info, v4i64x_info>;
1707
+ defm : avx512_perm_i_lowering<"VPERMI2PSZ128 ", v4f32x_info, v4i32x_info, v2i64x_info>;
1708
1708
1709
1709
// VPERMT2
1710
1710
multiclass avx512_perm_t<bits<8> opc, string OpcodeStr,
@@ -1743,19 +1743,19 @@ multiclass avx512_perm_t_sizes<bits<8> opc, string OpcodeStr,
1743
1743
X86FoldableSchedWrite sched,
1744
1744
AVX512VLVectorVTInfo VTInfo,
1745
1745
AVX512VLVectorVTInfo ShuffleMask> {
1746
- defm NAME: avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info512,
1747
- ShuffleMask.info512>,
1748
- avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info512,
1749
- ShuffleMask.info512>, EVEX_V512;
1746
+ defm NAME#Z : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info512,
1747
+ ShuffleMask.info512>,
1748
+ avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info512,
1749
+ ShuffleMask.info512>, EVEX_V512;
1750
1750
let Predicates = [HasVLX] in {
1751
- defm NAME#128 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info128,
1752
- ShuffleMask.info128>,
1753
- avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info128,
1754
- ShuffleMask.info128>, EVEX_V128;
1755
- defm NAME#256 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info256,
1756
- ShuffleMask.info256>,
1757
- avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info256,
1758
- ShuffleMask.info256>, EVEX_V256;
1751
+ defm NAME#Z128 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info128,
1752
+ ShuffleMask.info128>,
1753
+ avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info128,
1754
+ ShuffleMask.info128>, EVEX_V128;
1755
+ defm NAME#Z256 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info256,
1756
+ ShuffleMask.info256>,
1757
+ avx512_perm_t_mb<opc, OpcodeStr, sched, VTInfo.info256,
1758
+ ShuffleMask.info256>, EVEX_V256;
1759
1759
}
1760
1760
}
1761
1761
@@ -1764,13 +1764,13 @@ multiclass avx512_perm_t_sizes_bw<bits<8> opc, string OpcodeStr,
1764
1764
AVX512VLVectorVTInfo VTInfo,
1765
1765
AVX512VLVectorVTInfo Idx, Predicate Prd> {
1766
1766
let Predicates = [Prd] in
1767
- defm NAME: avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info512,
1768
- Idx.info512>, EVEX_V512;
1767
+ defm NAME#Z : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info512,
1768
+ Idx.info512>, EVEX_V512;
1769
1769
let Predicates = [Prd, HasVLX] in {
1770
- defm NAME#128 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info128,
1771
- Idx.info128>, EVEX_V128;
1772
- defm NAME#256 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info256,
1773
- Idx.info256>, EVEX_V256;
1770
+ defm NAME#Z128 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info128,
1771
+ Idx.info128>, EVEX_V128;
1772
+ defm NAME#Z256 : avx512_perm_t<opc, OpcodeStr, sched, VTInfo.info256,
1773
+ Idx.info256>, EVEX_V256;
1774
1774
}
1775
1775
}
1776
1776
0 commit comments