| # This file tests the scenario: ISEL R0, ZERO, R0, CR | |
| # RUN: llc -ppc-gen-isel=false -run-pass ppc-expand-isel -o - %s | FileCheck %s | |
| --- | | |
| target datalayout = "E-m:e-i64:64-n32:64" | |
| target triple = "powerpc64-unknown-linux-gnu" | |
| define signext i32 @testExpandISEL(i32 signext %i, i32 signext %j) { | |
| entry: | |
| %cmp = icmp sgt i32 %i, 0 | |
| %add = add nsw i32 %i, 1 | |
| %cond = select i1 %cmp, i32 %add, i32 %j | |
| ret i32 %cond | |
| } | |
| ... | |
| --- | |
| name: testExpandISEL | |
| alignment: 2 | |
| exposesReturnsTwice: false | |
| legalized: false | |
| regBankSelected: false | |
| selected: false | |
| tracksRegLiveness: true | |
| liveins: | |
| - { reg: '$x0' } | |
| - { reg: '$x3' } | |
| frameInfo: | |
| isFrameAddressTaken: false | |
| isReturnAddressTaken: false | |
| hasStackMap: false | |
| hasPatchPoint: false | |
| stackSize: 0 | |
| offsetAdjustment: 0 | |
| maxAlignment: 0 | |
| adjustsStack: false | |
| hasCalls: false | |
| maxCallFrameSize: 0 | |
| hasOpaqueSPAdjustment: false | |
| hasVAStart: false | |
| hasMustTailInVarArgFunc: false | |
| body: | | |
| bb.0.entry: | |
| liveins: $x0, $x3 | |
| $r5 = ADDI $r3, 1 | |
| $cr0 = CMPWI $r3, 0 | |
| $r0 = ISEL $zero, $r0, $cr0gt | |
| ; CHECK-LABEL: testExpandISEL | |
| ; CHECK: BC $cr0gt, %[[TRUE:bb.[0-9]+]] | |
| ; CHECK-NEXT: B %[[SUCCESSOR:bb.[0-9]+]] | |
| ; CHECK: [[TRUE]] | |
| ; CHECK: $r0 = ADDI $zero, 0 | |
| $x3 = EXTSW_32_64 $r0 | |
| ... | |