@@ -1630,6 +1630,9 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1630
1630
return true ;
1631
1631
};
1632
1632
1633
+ MachineIRBuilder MIB (MI);
1634
+ MachineRegisterInfo &MRI = *MIB.getMRI ();
1635
+
1633
1636
Intrinsic::ID IntrinsicID = cast<GIntrinsic>(MI).getIntrinsicID ();
1634
1637
switch (IntrinsicID) {
1635
1638
case Intrinsic::vacopy: {
@@ -1642,7 +1645,6 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1642
1645
MachineFunction &MF = *MI.getMF ();
1643
1646
auto Val = MF.getRegInfo ().createGenericVirtualRegister (
1644
1647
LLT::scalar (VaListSize * 8 ));
1645
- MachineIRBuilder MIB (MI);
1646
1648
MIB.buildLoad (Val, MI.getOperand (2 ),
1647
1649
*MF.getMachineMemOperand (MachinePointerInfo (),
1648
1650
MachineMemOperand::MOLoad,
@@ -1664,14 +1666,12 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1664
1666
assert (MI.getOpcode () == TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS);
1665
1667
// Anyext the value being set to 64 bit (only the bottom 8 bits are read by
1666
1668
// the instruction).
1667
- MachineIRBuilder MIB (MI);
1668
1669
auto &Value = MI.getOperand (3 );
1669
1670
Register ExtValueReg = MIB.buildAnyExt (LLT::scalar (64 ), Value).getReg (0 );
1670
1671
Value.setReg (ExtValueReg);
1671
1672
return true ;
1672
1673
}
1673
1674
case Intrinsic::aarch64_prefetch: {
1674
- MachineIRBuilder MIB (MI);
1675
1675
auto &AddrVal = MI.getOperand (1 );
1676
1676
1677
1677
int64_t IsWrite = MI.getOperand (2 ).getImm ();
@@ -1694,8 +1694,6 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1694
1694
case Intrinsic::aarch64_neon_smaxv:
1695
1695
case Intrinsic::aarch64_neon_uminv:
1696
1696
case Intrinsic::aarch64_neon_sminv: {
1697
- MachineIRBuilder MIB (MI);
1698
- MachineRegisterInfo &MRI = *MIB.getMRI ();
1699
1697
bool IsSigned = IntrinsicID == Intrinsic::aarch64_neon_saddv ||
1700
1698
IntrinsicID == Intrinsic::aarch64_neon_smaxv ||
1701
1699
IntrinsicID == Intrinsic::aarch64_neon_sminv;
@@ -1720,8 +1718,6 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1720
1718
}
1721
1719
case Intrinsic::aarch64_neon_uaddlp:
1722
1720
case Intrinsic::aarch64_neon_saddlp: {
1723
- MachineIRBuilder MIB (MI);
1724
-
1725
1721
unsigned Opc = IntrinsicID == Intrinsic::aarch64_neon_uaddlp
1726
1722
? AArch64::G_UADDLP
1727
1723
: AArch64::G_SADDLP;
@@ -1732,9 +1728,6 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1732
1728
}
1733
1729
case Intrinsic::aarch64_neon_uaddlv:
1734
1730
case Intrinsic::aarch64_neon_saddlv: {
1735
- MachineIRBuilder MIB (MI);
1736
- MachineRegisterInfo &MRI = *MIB.getMRI ();
1737
-
1738
1731
unsigned Opc = IntrinsicID == Intrinsic::aarch64_neon_uaddlv
1739
1732
? AArch64::G_UADDLV
1740
1733
: AArch64::G_SADDLV;
@@ -1790,37 +1783,28 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
1790
1783
return LowerBinOp (AArch64::G_UMULL);
1791
1784
case Intrinsic::aarch64_neon_abs: {
1792
1785
// Lower the intrinsic to G_ABS.
1793
- MachineIRBuilder MIB (MI);
1794
1786
MIB.buildInstr (TargetOpcode::G_ABS, {MI.getOperand (0 )}, {MI.getOperand (2 )});
1795
1787
MI.eraseFromParent ();
1796
1788
return true ;
1797
1789
}
1798
1790
case Intrinsic::aarch64_neon_sqadd: {
1799
- MachineIRBuilder MIB (MI);
1800
1791
if (MIB.getMRI ()->getType (MI.getOperand (0 ).getReg ()).isVector ())
1801
- return LowerBinOp (TargetOpcode::G_SADDSAT);
1802
-
1792
+ return LowerBinOp (TargetOpcode::G_SADDSAT);
1803
1793
break ;
1804
1794
}
1805
1795
case Intrinsic::aarch64_neon_sqsub: {
1806
- MachineIRBuilder MIB (MI);
1807
1796
if (MIB.getMRI ()->getType (MI.getOperand (0 ).getReg ()).isVector ())
1808
- return LowerBinOp (TargetOpcode::G_SSUBSAT);
1809
-
1797
+ return LowerBinOp (TargetOpcode::G_SSUBSAT);
1810
1798
break ;
1811
1799
}
1812
1800
case Intrinsic::aarch64_neon_uqadd: {
1813
- MachineIRBuilder MIB (MI);
1814
1801
if (MIB.getMRI ()->getType (MI.getOperand (0 ).getReg ()).isVector ())
1815
- return LowerBinOp (TargetOpcode::G_UADDSAT);
1816
-
1802
+ return LowerBinOp (TargetOpcode::G_UADDSAT);
1817
1803
break ;
1818
1804
}
1819
1805
case Intrinsic::aarch64_neon_uqsub: {
1820
- MachineIRBuilder MIB (MI);
1821
1806
if (MIB.getMRI ()->getType (MI.getOperand (0 ).getReg ()).isVector ())
1822
- return LowerBinOp (TargetOpcode::G_USUBSAT);
1823
-
1807
+ return LowerBinOp (TargetOpcode::G_USUBSAT);
1824
1808
break ;
1825
1809
}
1826
1810
0 commit comments