[PATCH] D120018: [AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors
Benjamin Kramer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 22 10:39:36 PST 2022
bkramer added a comment.
Reduced test case:
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64--linux-eabi"
define void @foo() local_unnamed_addr {
%tmp = xor <16 x i1> zeroinitializer, <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>
%tmp6 = load <8 x i16>, <8 x i16>* null, align 2
%tmp7 = sub <8 x i16> zeroinitializer, %tmp6
%tmp8 = shufflevector <8 x i16> %tmp7, <8 x i16> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
%tmp9 = icmp slt i64 0, undef
%tmp10 = zext i1 %tmp9 to i16
%tmp11 = insertelement <16 x i16> undef, i16 %tmp10, i64 0
%tmp12 = shufflevector <16 x i16> %tmp11, <16 x i16> undef, <16 x i32> zeroinitializer
%tmp13 = mul nuw <16 x i16> %tmp8, %tmp12
%tmp14 = icmp ne <16 x i16> %tmp13, zeroinitializer
%tmp15 = and <16 x i1> %tmp14, %tmp
%tmp16 = sext <16 x i1> %tmp15 to <16 x i8>
%tmp17 = bitcast i8* undef to <16 x i8>*
store <16 x i8> %tmp16, <16 x i8>* %tmp17, align 1
ret void
}
$ llc t.ll
Value type is non-standard value, Other.
UNREACHABLE executed at llvm-project/llvm/include/llvm/Support/MachineValueType.h:869!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120018/new/
https://reviews.llvm.org/D120018
More information about the llvm-commits
mailing list