xref: /llvm-project/llvm/test/CodeGen/ARM/machine-copyprop.mir (revision 7efabe5c7de46fe190638741c6ee81ae13255e38)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -o - %s -mtriple=armv7s-- -run-pass=machine-cp | FileCheck %s
3---
4# Test that machine copy prop recognizes the implicit-def operands on a COPY
5# as clobbering the register.
6# The following two COPYs must not be removed
7name: func
8body: |
9  bb.0:
10    ; CHECK-LABEL: name: func
11    ; CHECK: $d2 = VMOVv2i32 2, 14 /* CC::al */, $noreg
12    ; CHECK: $s5 = COPY $s0, implicit $q1, implicit-def $q1
13    ; CHECK: VST1q32 $r0, 0, $q1, 14 /* CC::al */, $noreg
14    ; CHECK: $s4 = COPY $s20, implicit-def $q1
15    ; CHECK: $s5 = COPY $s0, implicit killed $d0, implicit $q1, implicit-def $q1
16    ; CHECK: VST1q32 $r2, 0, $q1, 14 /* CC::al */, $noreg
17    $d2 = VMOVv2i32 2, 14, $noreg
18    $s5 = COPY $s0, implicit $q1, implicit-def $q1
19    VST1q32 $r0, 0, $q1, 14, $noreg
20    $s4 = COPY $s20, implicit-def $q1
21    $s5 = COPY $s0, implicit killed $d0, implicit $q1, implicit-def $q1
22    VST1q32 $r2, 0, $q1, 14, $noreg
23...
24