[llvm] [IR] Remove pointer arguments from loop.dependence.{war|raw}.mask (PR #188248)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 25 08:27:47 PDT 2026


================
@@ -5578,6 +5578,19 @@ AArch64TargetLowering::LowerLOOP_DEPENDENCE_MASK(SDValue Op,
 
   SDLoc DL(Op);
   EVT VT = Op.getValueType();
+  SDValue Op0 = Op.getOperand(0);
+
+  if (Op0.getValueType() != MVT::i64) {
+    assert(Op0.getValueSizeInBits() < 64);
----------------
MacDue wrote:

`i128` is not a legal type, so it won't occur here. We'd need to implement `ExpandIntegerOperand` if we wanted to handle it:

```
ExpandIntegerOperand Op #0: t9: nxv16i1 = loop_dep_war Constant:i128<0>, t5, Constant:i64<1>, Constant:i64<0>

LLVM ERROR: Do not know how to expand this operator's operand!
```

I think you probably need to bit a little more careful than truncating (but you can probably clamp the value to the range of an i64). 

https://github.com/llvm/llvm-project/pull/188248


More information about the llvm-commits mailing list