Skip to content

Commit d7e0ea2

Browse files
author
Chen Zheng
committed
[PowerPC] add testcase for a xxinsertw bug, NFC
1 parent 85bc6de commit d7e0ea2

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2+
; RUN: llc -mcpu=pwr9 -mtriple=powerpc64-ibm-aix -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
3+
; RUN: -stop-after=finalize-isel -verify-machineinstrs < %s | \
4+
; RUN: FileCheck %s
5+
6+
define <4 x i1> @foo(i1 %c1, i1 %c2, i1 %c3) {
7+
; CHECK-LABEL: name: foo
8+
; CHECK: bb.0 (%ir-block.0):
9+
; CHECK-NEXT: liveins: $x3, $x4, $x5
10+
; CHECK-NEXT: {{ $}}
11+
; CHECK-NEXT: [[COPY:%[0-9]+]]:g8rc = COPY $x5
12+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:g8rc = COPY $x4
13+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:g8rc = COPY $x3
14+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:gprc = COPY [[COPY1]].sub_32
15+
; CHECK-NEXT: [[MTVSRWZ:%[0-9]+]]:vsfrc = MTVSRWZ killed [[COPY3]]
16+
; CHECK-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:vrrc = SUBREG_TO_REG 1, killed [[MTVSRWZ]], %subreg.sub_64
17+
; CHECK-NEXT: [[COPY4:%[0-9]+]]:gprc = COPY [[COPY2]].sub_32
18+
; CHECK-NEXT: [[MTVSRWZ1:%[0-9]+]]:vsfrc = MTVSRWZ killed [[COPY4]]
19+
; CHECK-NEXT: [[SUBREG_TO_REG1:%[0-9]+]]:vrrc = SUBREG_TO_REG 1, killed [[MTVSRWZ1]], %subreg.sub_64
20+
; CHECK-NEXT: [[VMRGOW:%[0-9]+]]:vrrc = VMRGOW killed [[SUBREG_TO_REG1]], killed [[SUBREG_TO_REG]]
21+
; CHECK-NEXT: [[LDtocCPT:%[0-9]+]]:g8rc_and_g8rc_nox0 = LDtocCPT %const.0, $x2 :: (load (s64) from got)
22+
; CHECK-NEXT: [[LXV:%[0-9]+]]:vsrc = LXV 0, killed [[LDtocCPT]] :: (load (s128) from constant-pool)
23+
; CHECK-NEXT: [[COPY5:%[0-9]+]]:gprc = COPY [[COPY]].sub_32
24+
; CHECK-NEXT: [[MTVSRWZ2:%[0-9]+]]:vsfrc = MTVSRWZ killed [[COPY5]]
25+
; CHECK-NEXT: [[SUBREG_TO_REG2:%[0-9]+]]:vsrc = SUBREG_TO_REG 1, killed [[MTVSRWZ2]], %subreg.sub_64
26+
; CHECK-NEXT: [[XXPERM:%[0-9]+]]:vsrc = XXPERM killed [[VMRGOW]], [[SUBREG_TO_REG2]], killed [[LXV]]
27+
; CHECK-NEXT: [[DEF:%[0-9]+]]:vsrc = IMPLICIT_DEF
28+
; CHECK-NEXT: [[XXINSERTW:%[0-9]+]]:vsrc = XXINSERTW [[DEF]], killed [[XXPERM]], 8
29+
; CHECK-NEXT: $v2 = COPY [[XXINSERTW]]
30+
; CHECK-NEXT: BLR8 implicit $lr8, implicit $rm, implicit $v2
31+
%1 = insertelement <4 x i1> poison, i1 %c1, i64 0
32+
%2 = insertelement <4 x i1> %1, i1 %c2, i64 1
33+
%3 = insertelement <4 x i1> %2, i1 %c3, i64 3
34+
%4 = shufflevector <4 x i1> %3, <4 x i1> poison, <4 x i32> <i32 0, i32 1, i32 1, i32 3>
35+
ret <4 x i1> %4
36+
}

0 commit comments

Comments
 (0)