Skip to content

Commit 13b5882

Browse files
committed
[PowerPC] Add test for #77748 (NFC)
1 parent 21133f1 commit 13b5882

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

llvm/test/CodeGen/PowerPC/pr77748.ll

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2+
; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mattr=+altivec -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LE
3+
; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mattr=+altivec,+direct-move -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=BE
4+
5+
; FIXME: This is miscompile.
6+
7+
; LE-LABEL: .LCPI0_0:
8+
; LE-NEXT: .byte 31
9+
; LE-NEXT: .byte 15
10+
; LE-NEXT: .byte 30
11+
; LE-NEXT: .byte 14
12+
; LE-NEXT: .byte 29
13+
; LE-NEXT: .byte 13
14+
; LE-NEXT: .byte 28
15+
; LE-NEXT: .byte 12
16+
; LE-NEXT: .byte 31
17+
; LE-NEXT: .byte 16
18+
; LE-NEXT: .byte 31
19+
; LE-NEXT: .byte 16
20+
; LE-NEXT: .byte 31
21+
; LE-NEXT: .byte 16
22+
; LE-NEXT: .byte 31
23+
; LE-NEXT: .byte 16
24+
25+
; BE-LABEL: .LCPI0_0:
26+
; BE-NEXT: .byte 0
27+
; BE-NEXT: .byte 16
28+
; BE-NEXT: .byte 1
29+
; BE-NEXT: .byte 16
30+
; BE-NEXT: .byte 2
31+
; BE-NEXT: .byte 16
32+
; BE-NEXT: .byte 3
33+
; BE-NEXT: .byte 16
34+
; BE-NEXT: .byte 0
35+
; BE-NEXT: .byte 16
36+
; BE-NEXT: .byte 0
37+
; BE-NEXT: .byte 16
38+
; BE-NEXT: .byte 0
39+
; BE-NEXT: .byte 16
40+
; BE-NEXT: .byte 0
41+
; BE-NEXT: .byte 16
42+
43+
define <16 x i8> @test1(<16 x i8> %a) {
44+
; LE-LABEL: test1:
45+
; LE: # %bb.0:
46+
; LE-NEXT: addis r3, r2, .LCPI0_0@toc@ha
47+
; LE-NEXT: xxlxor vs36, vs36, vs36
48+
; LE-NEXT: addi r3, r3, .LCPI0_0@toc@l
49+
; LE-NEXT: lxvd2x vs0, 0, r3
50+
; LE-NEXT: xxswapd vs35, vs0
51+
; LE-NEXT: vperm v2, v4, v2, v3
52+
; LE-NEXT: blr
53+
;
54+
; BE-LABEL: test1:
55+
; BE: # %bb.0:
56+
; BE-NEXT: addis r3, r2, .LCPI0_0@toc@ha
57+
; BE-NEXT: xxlxor vs36, vs36, vs36
58+
; BE-NEXT: addi r3, r3, .LCPI0_0@toc@l
59+
; BE-NEXT: lxvw4x vs35, 0, r3
60+
; BE-NEXT: vperm v2, v2, v4, v3
61+
; BE-NEXT: blr
62+
%shuffle = shufflevector <16 x i8> %a, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 1, i32 16, i32 2, i32 16, i32 3, i32 16, i32 poison, i32 16, i32 poison, i32 16, i32 poison, i32 16, i32 poison, i32 16>
63+
ret <16 x i8> %shuffle
64+
}
65+
66+
; LE-LABEL: .LCPI1_0:
67+
; LE-NEXT: .byte 31
68+
; LE-NEXT: .byte 15
69+
; LE-NEXT: .byte 31
70+
; LE-NEXT: .byte 14
71+
; LE-NEXT: .byte 31
72+
; LE-NEXT: .byte 13
73+
; LE-NEXT: .byte 31
74+
; LE-NEXT: .byte 12
75+
; LE-NEXT: .byte 31
76+
; LE-NEXT: .byte 11
77+
; LE-NEXT: .byte 31
78+
; LE-NEXT: .byte 10
79+
; LE-NEXT: .byte 31
80+
; LE-NEXT: .byte 9
81+
; LE-NEXT: .byte 31
82+
; LE-NEXT: .byte 8
83+
84+
define <16 x i8> @test2(<16 x i8> %a) {
85+
; LE-LABEL: test2:
86+
; LE: # %bb.0:
87+
; LE-NEXT: addis r3, r2, .LCPI1_0@toc@ha
88+
; LE-NEXT: xxlxor vs36, vs36, vs36
89+
; LE-NEXT: addi r3, r3, .LCPI1_0@toc@l
90+
; LE-NEXT: lxvd2x vs0, 0, r3
91+
; LE-NEXT: xxswapd vs35, vs0
92+
; LE-NEXT: vperm v2, v2, v4, v3
93+
; LE-NEXT: blr
94+
;
95+
; BE-LABEL: test2:
96+
; BE: # %bb.0:
97+
; BE-NEXT: xxlxor vs35, vs35, vs35
98+
; BE-NEXT: vmrghb v2, v3, v2
99+
; BE-NEXT: blr
100+
%shuffle = shufflevector <16 x i8> %a, <16 x i8> zeroinitializer, <16 x i32> <i32 16, i32 0, i32 16, i32 1, i32 16, i32 2, i32 16, i32 3, i32 16, i32 4, i32 poison, i32 5, i32 poison, i32 6, i32 poison, i32 7>
101+
ret <16 x i8> %shuffle
102+
}

0 commit comments

Comments
 (0)