xref: /llvm-project/llvm/test/CodeGen/Thumb2/peephole-cmp.mir (revision 7efabe5c7de46fe190638741c6ee81ae13255e38)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -run-pass=peephole-opt -verify-machineinstrs -o - %s | FileCheck %s
3--- |
4  target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
5  target triple = "thumbv7m-none-none-eabi"
6
7  define i32 @test_addir_frameindex(i32 %a) {
8    %f = alloca i32
9    ret i32 %a
10  }
11...
12---
13name:            test_addir_frameindex
14liveins:
15  - { reg: '$r0', virtual-reg: '%0' }
16stack:
17  - { id: 0, name: f, type: default, offset: 0, size: 1, alignment: 4,
18      stack-id: default, callee-saved-register: '', callee-saved-restored: true,
19      local-offset: -4, debug-info-variable: '', debug-info-expression: '',
20      debug-info-location: '' }
21body:             |
22  ; CHECK-LABEL: name: test_addir_frameindex
23  ; CHECK: bb.0:
24  ; CHECK:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
25  ; CHECK:   [[COPY:%[0-9]+]]:rgpr = COPY $r0
26  ; CHECK:   [[t2ADDri:%[0-9]+]]:rgpr = t2ADDri %stack.0.f, 0, 14 /* CC::al */, $noreg, $noreg
27  ; CHECK:   t2CMPrr [[t2ADDri]], [[COPY]], 14 /* CC::al */, $noreg, implicit-def $cpsr
28  ; CHECK:   t2Bcc %bb.2, 3 /* CC::lo */, $cpsr
29  ; CHECK:   t2B %bb.1, 14 /* CC::al */, $noreg
30  ; CHECK: bb.1:
31  ; CHECK:   $r0 = COPY [[t2ADDri]]
32  ; CHECK:   tBX_RET 14 /* CC::al */, $noreg
33  ; CHECK: bb.2:
34  ; CHECK:   $r0 = COPY [[COPY]]
35  ; CHECK:   tBX_RET 14 /* CC::al */, $noreg
36  bb.0:
37    successors: %bb.2(0x40000000), %bb.1(0x40000000)
38    liveins: $r0
39
40    %0:rgpr = COPY $r0
41    %1:rgpr = t2ADDri %stack.0.f, 0, 14, $noreg, $noreg
42    t2CMPrr %1, %0, 14, $noreg, implicit-def $cpsr
43    t2Bcc %bb.2, 3, $cpsr
44    t2B %bb.1, 14, $noreg
45
46  bb.1:
47    $r0 = COPY %1
48    tBX_RET 14, $noreg
49
50  bb.2:
51    $r0 = COPY %0
52    tBX_RET 14, $noreg
53
54...
55