[llvm] SystemZ: Stop casting fp typed atomic loads in the IR (PR #90768)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu May 2 10:22:43 PDT 2024
================
@@ -6249,6 +6249,22 @@ SDValue SystemZTargetLowering::LowerOperation(SDValue Op,
}
}
+// Manually lower a bitcast to avoid introducing illegal types after type
+// legalization.
+static SDValue expandBitCastI128ToF128(SelectionDAG &DAG, SDValue Src,
+ SDValue Chain, const SDLoc &SL) {
+ SDValue Hi =
+ DAG.getTargetExtractSubreg(SystemZ::subreg_h64, SL, MVT::i64, Src);
+ SDValue Lo =
+ DAG.getTargetExtractSubreg(SystemZ::subreg_l64, SL, MVT::i64, Src);
+
+ Hi = DAG.getBitcast(MVT::f64, Hi);
+ Lo = DAG.getBitcast(MVT::f64, Lo);
+
+ SDNode *Pair = DAG.getMachineNode(SystemZ::PAIR128, SL, MVT::f128, Hi, Lo);
----------------
arsenm wrote:
I'll just switch this to directly use REG_SEQUENCE
https://github.com/llvm/llvm-project/pull/90768
More information about the llvm-commits
mailing list