113 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc %s -o - -mtriple=aarch64-unknown-linux -run-pass=aarch64-mi-peephole-opt -verify-machineinstrs | FileCheck %s3 4---5name: peephole_cselxr_same6registers:7 - { id: 1, class: gpr64, preferred-register: '' }8 - { id: 2, class: gpr64, preferred-register: '' }9liveins:10 - { reg: '$x0', virtual-reg: '%1' }11 - { reg: '$x1', virtual-reg: '%2' }12body: |13 bb.0.entry:14 liveins: $x0, $x115 16 ; CHECK-LABEL: name: peephole_cselxr_same17 ; CHECK: liveins: $x0, $x118 ; CHECK-NEXT: {{ $}}19 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x120 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x021 ; CHECK-NEXT: $xzr = ANDSXri [[COPY]], 0, implicit-def $nzcv22 ; CHECK-NEXT: [[ORRXrs:%[0-9]+]]:gpr64 = ORRXrs $xzr, [[COPY1]], 023 ; CHECK-NEXT: RET_ReallyLR24 %3:gpr64 = COPY $x125 %4:gpr64 = COPY $x026 $xzr = ANDSXri %3, 0, implicit-def $nzcv27 %5:gpr64 = CSELXr %4, %4, 0, implicit $nzcv28 RET_ReallyLR29 30...31---32name: peephole_cselwr_same33registers:34 - { id: 1, class: gpr32, preferred-register: '' }35 - { id: 2, class: gpr32, preferred-register: '' }36liveins:37 - { reg: '$w0', virtual-reg: '%1' }38 - { reg: '$w1', virtual-reg: '%2' }39body: |40 bb.0.entry:41 liveins: $w0, $w142 43 ; CHECK-LABEL: name: peephole_cselwr_same44 ; CHECK: liveins: $w0, $w145 ; CHECK-NEXT: {{ $}}46 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w147 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w048 ; CHECK-NEXT: $wzr = ANDSWri [[COPY]], 0, implicit-def $nzcv49 ; CHECK-NEXT: [[ORRWrs:%[0-9]+]]:gpr32 = ORRWrs $wzr, [[COPY1]], 050 ; CHECK-NEXT: RET_ReallyLR51 %3:gpr32 = COPY $w152 %4:gpr32 = COPY $w053 $wzr = ANDSWri %3, 0, implicit-def $nzcv54 %5:gpr32 = CSELWr %4, %4, 0, implicit $nzcv55 RET_ReallyLR56 57...58---59name: peephole_cselxr_different60registers:61 - { id: 1, class: gpr64, preferred-register: '' }62 - { id: 2, class: gpr64, preferred-register: '' }63liveins:64 - { reg: '$x0', virtual-reg: '%1' }65 - { reg: '$x1', virtual-reg: '%2' }66body: |67 bb.0.entry:68 liveins: $x0, $x169 70 ; CHECK-LABEL: name: peephole_cselxr_different71 ; CHECK: liveins: $x0, $x172 ; CHECK-NEXT: {{ $}}73 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x174 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x075 ; CHECK-NEXT: $xzr = ANDSXri [[COPY]], 0, implicit-def $nzcv76 ; CHECK-NEXT: [[CSELXr:%[0-9]+]]:gpr64 = CSELXr [[COPY]], [[COPY1]], 0, implicit $nzcv77 ; CHECK-NEXT: RET_ReallyLR78 %3:gpr64 = COPY $x179 %4:gpr64 = COPY $x080 $xzr = ANDSXri %3, 0, implicit-def $nzcv81 %5:gpr64 = CSELXr %3, %4, 0, implicit $nzcv82 RET_ReallyLR83 84...85---86name: peephole_cselwr_different87registers:88 - { id: 1, class: gpr32, preferred-register: '' }89 - { id: 2, class: gpr32, preferred-register: '' }90liveins:91 - { reg: '$w0', virtual-reg: '%1' }92 - { reg: '$w1', virtual-reg: '%2' }93body: |94 bb.0.entry:95 liveins: $w0, $w196 97 ; CHECK-LABEL: name: peephole_cselwr_different98 ; CHECK: liveins: $w0, $w199 ; CHECK-NEXT: {{ $}}100 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w1101 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w0102 ; CHECK-NEXT: $wzr = ANDSWri [[COPY]], 0, implicit-def $nzcv103 ; CHECK-NEXT: [[CSELWr:%[0-9]+]]:gpr32 = CSELWr [[COPY]], [[COPY1]], 0, implicit $nzcv104 ; CHECK-NEXT: RET_ReallyLR105 %3:gpr32 = COPY $w1106 %4:gpr32 = COPY $w0107 $wzr = ANDSWri %3, 0, implicit-def $nzcv108 %5:gpr32 = CSELWr %3, %4, 0, implicit $nzcv109 RET_ReallyLR110 111...112 113