[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / PowerPC / reg-scavenging.ll
blob6a32c176dc4c32683f8e28067af1bec07f7ed462
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown \
3 ; RUN:   -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names < %s | FileCheck %s
5 define dso_local signext i32 @caller(i32 signext %a, i32 signext %b) local_unnamed_addr {
6 ; CHECK-LABEL: caller:
7 ; CHECK:       # %bb.0: # %entry
8 ; CHECK-NEXT:    mflr r0
9 ; CHECK-NEXT:    std r0, 16(r1)
10 ; CHECK-NEXT:    stdu r1, -240(r1)
11 ; CHECK-NEXT:    .cfi_def_cfa_offset 240
12 ; CHECK-NEXT:    .cfi_offset lr, 16
13 ; CHECK-NEXT:    .cfi_offset v20, -192
14 ; CHECK-NEXT:    li r5, 48
15 ; CHECK-NEXT:    stxvd2x v20, r1, r5 # 16-byte Folded Spill
16 ; CHECK-NEXT:    #APP
17 ; CHECK-NEXT:    add r3, r3, r4
18 ; CHECK-NEXT:    #NO_APP
19 ; CHECK-NEXT:    extsw r3, r3
20 ; CHECK-NEXT:    bl callee
21 ; CHECK-NEXT:    nop
22 ; CHECK-NEXT:    li r4, 48
23 ; CHECK-NEXT:    lxvd2x v20, r1, r4 # 16-byte Folded Reload
24 ; CHECK-NEXT:    addi r1, r1, 240
25 ; CHECK-NEXT:    ld r0, 16(r1)
26 ; CHECK-NEXT:    mtlr r0
27 ; CHECK-NEXT:    blr
28 entry:
29   %0 = tail call i32 asm "add $0, $1, $2", "=r,r,r,~{v20}"(i32 %a, i32 %b)
30   %call = tail call signext i32 @callee(i32 signext %0)
31   ret i32 %call
34 declare signext i32 @callee(i32 signext) local_unnamed_addr