[PATCH] D145583: [AArch64][SME] Fix an infinite loop in DAGCombine related to adding -force-streaming-compatible-sve flag.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 21 06:52:47 PDT 2023


sdesmalen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24423
+  unsigned Opc = N->getOpcode();
+  if (Subtarget->forceStreamingCompatibleSVE() &&
+      (Opc == ISD::ZERO_EXTEND || Opc == ISD::SIGN_EXTEND)) {
----------------
I guess this condition can be removed now?


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24424
+  if (Subtarget->forceStreamingCompatibleSVE() &&
+      (Opc == ISD::ZERO_EXTEND || Opc == ISD::SIGN_EXTEND)) {
+    if (any_of(N->uses(),
----------------
Should this code also check for ISD::ANY_EXTEND ?


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll:894
 
+define void @extend_cmp_of_mul(i32 %0, <8 x i64> %1, ptr %2) #0 {
+; CHECK-LABEL: extend_cmp_of_mul:
----------------
Can you also add a test where the result of the extend is not used by a `mul`?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145583/new/

https://reviews.llvm.org/D145583



More information about the llvm-commits mailing list