1# RUN: llc -mtriple=powerpc64le-unknown-unknown -start-after=ppc-mi-peepholes \
2# RUN: -stop-before=ppc-expand-isel -verify-machineinstrs %s -o - | FileCheck %s
3--- |
4  ; ModuleID = 'a.ll'
5  source_filename = "a.c"
6  target datalayout = "e-m:e-i64:64-n32:64"
7  target triple = "powerpc64le-unknown-linux-gnu"
8
9  ; Function Attrs: norecurse nounwind readnone
10  define signext i32 @test(i32 signext %a, i32 signext %b, i32 signext %c) local_unnamed_addr #0 {
11  entry:
12    %cmp = icmp sgt i32 %a, %b
13    %add = add nsw i32 %c, %b
14    %cond = select i1 %cmp, i32 %a, i32 %add
15    ret i32 %cond
16  }
17
18
19  !llvm.module.flags = !{!0, !1}
20  !llvm.ident = !{!2}
21
22  !0 = !{i32 1, !"wchar_size", i32 4}
23  !1 = !{i32 7, !"PIC Level", i32 2}
24  !2 = !{!"clang version 8.0.0 (trunk 347251)"}
25
26...
27---
28name:            test
29alignment:       16
30exposesReturnsTwice: false
31legalized:       false
32regBankSelected: false
33selected:        false
34failedISel:      false
35tracksRegLiveness: true
36hasWinCFI:       false
37registers:       []
38liveins:
39  - { reg: '$x3', virtual-reg: '' }
40  - { reg: '$x4', virtual-reg: '' }
41  - { reg: '$x5', virtual-reg: '' }
42frameInfo:
43  isFrameAddressTaken: false
44  isReturnAddressTaken: false
45  hasStackMap:     false
46  hasPatchPoint:   false
47  stackSize:       0
48  offsetAdjustment: 0
49  maxAlignment:    0
50  adjustsStack:    false
51  hasCalls:        false
52  stackProtector:  ''
53  maxCallFrameSize: 0
54  cvBytesOfCalleeSavedRegisters: 0
55  hasOpaqueSPAdjustment: false
56  hasVAStart:      false
57  hasMustTailInVarArgFunc: false
58  localFrameSize:  0
59  savePoint:       ''
60  restorePoint:    ''
61fixedStack:      []
62stack:           []
63constants:       []
64body:             |
65  bb.0.entry:
66    liveins: $x3, $x5
67
68    renamable $r4 = LI 0
69    renamable $r5 = nsw ADD4 killed renamable $r5, renamable $r5, implicit $x5
70    renamable $cr0 = CMPW renamable $r3, killed renamable $r4, implicit $x4
71    ; CHECK: ADD4
72    ; CHECK-NOT: implicit $x4
73    renamable $r3 = ISEL killed renamable $r3, killed renamable $r5, killed renamable $cr0gt, implicit $cr0, implicit $x3
74    renamable $x3 = EXTSW_32_64 killed renamable $r3
75    BLR8 implicit $lr8, implicit $rm, implicit killed $x3
76
77...
78
79