[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
Thu Mar 23 07:27:31 PDT 2023


sdesmalen added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll:930-932
+  %4 = sext i32 %0 to i64
+  %5 = insertelement <8 x i64> zeroinitializer, i64 %4, i64 0
+  %6 = shufflevector <8 x i64> %5, <8 x i64> zeroinitializer, <8 x i32> zeroinitializer
----------------
This is testing the wrong thing, because it is testing `splat(sext(scalar))` rather than `sext(splat(scalar))` which is what `SimplifyVCastOp` tries to change.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll:931
+  %4 = sext i32 %0 to i64
+  %5 = insertelement <8 x i64> zeroinitializer, i64 %4, i64 0
+  %6 = shufflevector <8 x i64> %5, <8 x i64> zeroinitializer, <8 x i32> zeroinitializer
----------------
It's better to use `poison` here and below.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll:955
+; CHECK-NEXT:    ret
+entry:
+  br label %for.body1.i
----------------
No vectors are used in this loop, so the code you've modified does not apply to this test at all. I'm expecting a similar test to the above, but then using a different operator instead of 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