[PowerPC][NFC] Regenerate test using script

This test case ended up as a hybrid of generated checks and manually inserted
checks. Regenerate using script to make it consistent.

llvm-svn: 366659
This commit is contained in:
Nemanja Ivanovic 2019-07-21 18:42:29 +00:00
parent e6cd20ba53
commit 73d641a23c
1 changed files with 161 additions and 28 deletions

View File

@ -1,3 +1,4 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mcpu=pwr9 -O3 -verify-machineinstrs -ppc-vsr-nums-as-vr \
; RUN: -ppc-asm-full-reg-names -mtriple=powerpc64le-unknown-linux-gnu \
; RUN: < %s | FileCheck %s
@ -29,7 +30,8 @@ define signext i32 @test_pre_inc_disable_1(i8* nocapture readonly %pix1, i32 sig
; CHECK-NEXT: xvnegsp v0, v1
; CHECK-NEXT: .p2align 4
; CHECK-NEXT: .LBB0_1: # %for.cond1.preheader
; CHECK: lfd f0, 0(r3)
; CHECK-NEXT: #
; CHECK-NEXT: lfd f0, 0(r3)
; CHECK-NEXT: xxpermdi v1, f0, f0, 2
; CHECK-NEXT: vperm v6, v1, v3, v4
; CHECK-NEXT: vperm v1, v3, v1, v2
@ -87,7 +89,8 @@ define signext i32 @test_pre_inc_disable_1(i8* nocapture readonly %pix1, i32 sig
; P9BE-NEXT: xvnegsp v0, v1
; P9BE-NEXT: .p2align 4
; P9BE-NEXT: .LBB0_1: # %for.cond1.preheader
; P9BE: lfd f0, 0(r3)
; P9BE-NEXT: #
; P9BE-NEXT: lfd f0, 0(r3)
; P9BE-NEXT: xxlor v1, vs0, vs0
; P9BE-NEXT: vperm v6, v3, v1, v4
; P9BE-NEXT: vperm v1, v3, v1, v2
@ -280,6 +283,51 @@ entry:
;}
define void @test32(i8* nocapture readonly %pix2, i32 signext %i_pix2) {
; CHECK-LABEL: test32:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: add r5, r3, r4
; CHECK-NEXT: lfiwzx f0, r3, r4
; CHECK-NEXT: addis r3, r2, .LCPI2_0@toc@ha
; CHECK-NEXT: addi r3, r3, .LCPI2_0@toc@l
; CHECK-NEXT: lxvx v4, 0, r3
; CHECK-NEXT: li r3, 4
; CHECK-NEXT: xxpermdi v2, f0, f0, 2
; CHECK-NEXT: lfiwzx f0, r5, r3
; CHECK-NEXT: xxlxor v3, v3, v3
; CHECK-NEXT: vperm v2, v2, v3, v4
; CHECK-NEXT: xxpermdi v5, f0, f0, 2
; CHECK-NEXT: vperm v3, v5, v3, v4
; CHECK-NEXT: vspltisw v4, 8
; CHECK-NEXT: vnegw v3, v3
; CHECK-NEXT: vadduwm v4, v4, v4
; CHECK-NEXT: vslw v3, v3, v4
; CHECK-NEXT: vsubuwm v2, v3, v2
; CHECK-NEXT: xxswapd vs0, v2
; CHECK-NEXT: stxvx vs0, 0, r3
; CHECK-NEXT: blr
;
; P9BE-LABEL: test32:
; P9BE: # %bb.0: # %entry
; P9BE-NEXT: add r5, r3, r4
; P9BE-NEXT: lfiwzx f0, r3, r4
; P9BE-NEXT: addis r3, r2, .LCPI2_0@toc@ha
; P9BE-NEXT: addi r3, r3, .LCPI2_0@toc@l
; P9BE-NEXT: lxvx v4, 0, r3
; P9BE-NEXT: li r3, 4
; P9BE-NEXT: xxsldwi v2, f0, f0, 1
; P9BE-NEXT: lfiwzx f0, r5, r3
; P9BE-NEXT: xxlxor v3, v3, v3
; P9BE-NEXT: vperm v2, v3, v2, v4
; P9BE-NEXT: xxsldwi v5, f0, f0, 1
; P9BE-NEXT: vperm v3, v3, v5, v4
; P9BE-NEXT: vspltisw v4, 8
; P9BE-NEXT: vnegw v3, v3
; P9BE-NEXT: vadduwm v4, v4, v4
; P9BE-NEXT: vslw v3, v3, v4
; P9BE-NEXT: vsubuwm v2, v3, v2
; P9BE-NEXT: xxswapd vs0, v2
; P9BE-NEXT: stxvx vs0, 0, r3
; P9BE-NEXT: blr
entry:
%idx.ext63 = sext i32 %i_pix2 to i64
%add.ptr64 = getelementptr inbounds i8, i8* %pix2, i64 %idx.ext63
@ -302,19 +350,62 @@ entry:
%13 = shufflevector <4 x i32> %12, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
store <4 x i32> %13, <4 x i32>* undef, align 16
ret void
; CHECK-LABEL: test32:
; CHECK-NOT: lwzux
; CHECK-NOT: mtvsrws
; CHECK: lfiwzx
; CHECK: lfiwzx
; P9BE-CHECK-LABEL: test32:
; P9BE-CHECK-NOT: lwzux
; P9BE-CHECK-NOT: mtvsrws
; P9BE-CHECK: lfiwzx
; P9BE-CHECK: lfiwzx
}
define void @test16(i16* nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) {
; CHECK-LABEL: test16:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: sldi r4, r4, 1
; CHECK-NEXT: lxsihzx v2, r3, r4
; CHECK-NEXT: vsplth v2, v2, 3
; CHECK-NEXT: xxlxor v3, v3, v3
; CHECK-NEXT: vmrglh v2, v3, v2
; CHECK-NEXT: vsplth v4, v3, 7
; CHECK-NEXT: add r6, r3, r4
; CHECK-NEXT: li r3, 16
; CHECK-NEXT: vmrglw v2, v2, v4
; CHECK-NEXT: lxsihzx v4, r6, r3
; CHECK-NEXT: addis r3, r2, .LCPI3_0@toc@ha
; CHECK-NEXT: addi r3, r3, .LCPI3_0@toc@l
; CHECK-NEXT: vsplth v4, v4, 3
; CHECK-NEXT: vmrglh v3, v3, v4
; CHECK-NEXT: lxvx v4, 0, r3
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: vperm v2, v3, v2, v4
; CHECK-NEXT: xxspltw v3, v2, 2
; CHECK-NEXT: vadduwm v2, v2, v3
; CHECK-NEXT: vextuwrx r3, r3, v2
; CHECK-NEXT: cmpw cr0, r3, r5
; CHECK-NEXT: bgelr+ cr0
; CHECK-NEXT: # %bb.1: # %if.then
;
; P9BE-LABEL: test16:
; P9BE: # %bb.0: # %entry
; P9BE-NEXT: sldi r4, r4, 1
; P9BE-NEXT: add r6, r3, r4
; P9BE-NEXT: li r7, 16
; P9BE-NEXT: lxsihzx v2, r6, r7
; P9BE-NEXT: vsplth v2, v2, 3
; P9BE-NEXT: lxsihzx v4, r3, r4
; P9BE-NEXT: li r6, 0
; P9BE-NEXT: sldi r6, r6, 48
; P9BE-NEXT: mtvsrd v3, r6
; P9BE-NEXT: addis r3, r2, .LCPI3_0@toc@ha
; P9BE-NEXT: addi r3, r3, .LCPI3_0@toc@l
; P9BE-NEXT: vmrghh v2, v3, v2
; P9BE-NEXT: vsplth v4, v4, 3
; P9BE-NEXT: vmrghh v4, v3, v4
; P9BE-NEXT: vsplth v3, v3, 0
; P9BE-NEXT: vmrghw v3, v3, v4
; P9BE-NEXT: lxvx v4, 0, r3
; P9BE-NEXT: li r3, 0
; P9BE-NEXT: vperm v2, v3, v2, v4
; P9BE-NEXT: xxspltw v3, v2, 1
; P9BE-NEXT: vadduwm v2, v2, v3
; P9BE-NEXT: vextuwlx r3, r3, v2
; P9BE-NEXT: cmpw cr0, r3, r5
; P9BE-NEXT: bgelr+ cr0
; P9BE-NEXT: # %bb.1: # %if.then
entry:
%idxprom = sext i32 %delta to i64
%add14 = add nsw i32 %delta, 8
@ -345,17 +436,67 @@ if.then: ; preds = %for.body
if.end: ; preds = %for.body
ret void
; CHECK-LABEL: test16:
; CHECK-NOT: lhzux
; CHECK: lxsihzx
; CHECK: lxsihzx
; P9BE-CHECK-LABEL: test16:
; P9BE-CHECK-NOT: lhzux
; P9BE-CHECK: lxsihzx
; P9BE-CHECK: lxsihzx
}
define void @test8(i8* nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) {
; CHECK-LABEL: test8:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: lxsibzx v2, r3, r4
; CHECK-NEXT: add r6, r3, r4
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: mtvsrd f0, r3
; CHECK-NEXT: li r3, 8
; CHECK-NEXT: xxswapd v3, vs0
; CHECK-NEXT: vspltb v2, v2, 7
; CHECK-NEXT: lxsibzx v5, r6, r3
; CHECK-NEXT: vspltb v5, v5, 7
; CHECK-NEXT: vmrglb v2, v3, v2
; CHECK-NEXT: vspltb v4, v3, 15
; CHECK-NEXT: vmrglb v3, v3, v5
; CHECK-NEXT: addis r3, r2, .LCPI4_0@toc@ha
; CHECK-NEXT: vmrglh v2, v2, v4
; CHECK-NEXT: addi r3, r3, .LCPI4_0@toc@l
; CHECK-NEXT: vmrglw v2, v2, v4
; CHECK-NEXT: vmrglh v3, v3, v4
; CHECK-NEXT: vmrglw v3, v4, v3
; CHECK-NEXT: lxvx v4, 0, r3
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: vperm v2, v3, v2, v4
; CHECK-NEXT: xxspltw v3, v2, 2
; CHECK-NEXT: vadduwm v2, v2, v3
; CHECK-NEXT: vextuwrx r3, r3, v2
; CHECK-NEXT: cmpw cr0, r3, r5
; CHECK-NEXT: bgelr+ cr0
; CHECK-NEXT: # %bb.1: # %if.then
;
; P9BE-LABEL: test8:
; P9BE: # %bb.0: # %entry
; P9BE-NEXT: add r6, r3, r4
; P9BE-NEXT: li r7, 8
; P9BE-NEXT: lxsibzx v2, r6, r7
; P9BE-NEXT: vspltb v2, v2, 7
; P9BE-NEXT: lxsibzx v4, r3, r4
; P9BE-NEXT: li r6, 0
; P9BE-NEXT: sldi r6, r6, 56
; P9BE-NEXT: mtvsrd v3, r6
; P9BE-NEXT: vmrghb v2, v3, v2
; P9BE-NEXT: addis r3, r2, .LCPI4_0@toc@ha
; P9BE-NEXT: addi r3, r3, .LCPI4_0@toc@l
; P9BE-NEXT: vspltb v4, v4, 7
; P9BE-NEXT: vmrghb v4, v3, v4
; P9BE-NEXT: vspltb v3, v3, 0
; P9BE-NEXT: vmrghh v4, v4, v3
; P9BE-NEXT: xxspltw v3, v3, 0
; P9BE-NEXT: vmrghw v2, v4, v2
; P9BE-NEXT: lxvx v4, 0, r3
; P9BE-NEXT: li r3, 0
; P9BE-NEXT: vperm v2, v3, v2, v4
; P9BE-NEXT: xxspltw v3, v2, 1
; P9BE-NEXT: vadduwm v2, v2, v3
; P9BE-NEXT: vextuwlx r3, r3, v2
; P9BE-NEXT: cmpw cr0, r3, r5
; P9BE-NEXT: bgelr+ cr0
; P9BE-NEXT: # %bb.1: # %if.then
entry:
%idxprom = sext i32 %delta to i64
%add14 = add nsw i32 %delta, 8
@ -386,12 +527,4 @@ if.then: ; preds = %for.body
if.end: ; preds = %for.body
ret void
; CHECK-LABEL: test8:
; CHECK-NOT: lbzux
; CHECK: lxsibzx
; CHECK: lxsibzx
; P9BE-CHECK-LABEL: test8:
; P9BE-CHECK-NOT: lbzux
; P9BE-CHECK: lxsibzx
; P9BE-CHECK: lxsibzx
}