xref: /llvm-project/llvm/test/CodeGen/PowerPC/vec_splat_constant.ll (revision 5403c59c608c08c8ecd4303763f08eb046eb5e4d)
1; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=g5 | FileCheck %s
2; Formerly incorrectly inserted vsldoi (endian confusion)
3
4@baz = common global <16 x i8> zeroinitializer    ; <ptr> [#uses=1]
5
6define void @foo(<16 x i8> %x) nounwind ssp {
7entry:
8; CHECK: foo:
9; CHECK-NOT: vsldoi
10  %x_addr = alloca <16 x i8>                      ; <ptr> [#uses=2]
11  %temp = alloca <16 x i8>                        ; <ptr> [#uses=2]
12  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
13  store <16 x i8> %x, ptr %x_addr
14  store <16 x i8> <i8 0, i8 0, i8 0, i8 14, i8 0, i8 0, i8 0, i8 14, i8 0, i8 0, i8 0, i8 14, i8 0, i8 0, i8 0, i8 14>, ptr %temp, align 16
15  %0 = load <16 x i8>, ptr %x_addr, align 16          ; <<16 x i8>> [#uses=1]
16  %1 = load <16 x i8>, ptr %temp, align 16            ; <<16 x i8>> [#uses=1]
17  %tmp = add <16 x i8> %0, %1                     ; <<16 x i8>> [#uses=1]
18  store <16 x i8> %tmp, ptr @baz, align 16
19  br label %return
20
21return:                                           ; preds = %entry
22  ret void
23; CHECK: blr
24}
25