[llvm] [AMDGPU] Add custom lowering of llvm.convert.from.arbitrary.fp for FP8 (PR #194144)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 6 05:21:29 PDT 2026
================
@@ -10804,6 +10818,72 @@ SDValue SITargetLowering::lowerWorkitemID(SelectionDAG &DAG, SDValue Op,
DAG.getValueType(SmallVT));
}
+// Pack a vector of i8 lanes into i32 via bitcast.
+// FIXME: packing loses lane-wise poison. Should we do something about it?
+SDValue SITargetLowering::packBytesToI32(SelectionDAG &DAG, const SDLoc &SL,
+ SDValue Src) {
+ assert(Src.getValueType() == MVT::v2i8 &&
+ "packBytesToI32 expects a v2i8 source");
+ // Widen v2i8 to v4i8 with the high half poison, then bitcast to i32. This
+ // selects to v_perm_b32, packing two i8 values into low 16 bits of an i32.
+ SDValue Wide = DAG.getNode(ISD::CONCAT_VECTORS, SL, MVT::v4i8, Src,
----------------
arsenm wrote:
You're trying to end up in a scalar integer anyway, so we're probably better off casting to an equivalent integer bitwidth and using any_extend.
https://github.com/llvm/llvm-project/pull/194144
More information about the llvm-commits
mailing list