[llvm] [AArch64] Assert "Request for a fixed element count on a scalable obect" (PR #105484)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 21 04:11:38 PDT 2024
================
@@ -984,3 +984,22 @@ if.else:
ret <5 x float> %r.4
}
+; This ran in an assert in `areExtractShuffleVectors`.
+define void @scalable_types_cannot_be_extract_shuffle() {
+; CHECK-LABEL: @scalable_types_cannot_be_extract_shuffle(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[BROADCAST_SPLAT68:%.*]] = shufflevector <vscale x 8 x i8> zeroinitializer, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
+; CHECK-NEXT: [[TMP0:%.*]] = zext <vscale x 8 x i8> [[BROADCAST_SPLAT68]] to <vscale x 8 x i16>
+; CHECK-NEXT: [[BROADCAST_SPLAT70:%.*]] = shufflevector <vscale x 8 x i8> zeroinitializer, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
+; CHECK-NEXT: [[TMP1:%.*]] = zext <vscale x 8 x i8> [[BROADCAST_SPLAT70]] to <vscale x 8 x i16>
+; CHECK-NEXT: [[TMP2:%.*]] = sub <vscale x 8 x i16> [[TMP0]], [[TMP1]]
+; CHECK-NEXT: ret void
+;
+entry:
+ %broadcast.splat68 = shufflevector <vscale x 8 x i8> zeroinitializer, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
+ %0 = zext <vscale x 8 x i8> %broadcast.splat68 to <vscale x 8 x i16>
+ %broadcast.splat70 = shufflevector <vscale x 8 x i8> zeroinitializer, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
+ %1 = zext <vscale x 8 x i8> %broadcast.splat70 to <vscale x 8 x i16>
+ %2 = sub <vscale x 8 x i16> %0, %1
+ ret void
----------------
fhahn wrote:
```suggestion
ret <vscale x 8 x i16> %2`
```
https://github.com/llvm/llvm-project/pull/105484
More information about the llvm-commits
mailing list