[ARM] Fixup the creation of VPT blocks
[llvm-core.git] / test / CodeGen / AArch64 / ldst-opt-aa.mir
bloba7a47278a4e9e01198a5dcd087c4f55d851c23f5
1 # RUN: llc -mtriple=aarch64--linux-gnu -run-pass=aarch64-ldst-opt %s -verify-machineinstrs -o - | FileCheck %s
2 --- |
3   define void @ldr_str_aa(i32* noalias nocapture %x, i32* noalias nocapture readonly %y) {
4   entry:
5     %0 = load i32, i32* %y, align 4
6     store i32 %0, i32* %x, align 4
7     %arrayidx2 = getelementptr inbounds i32, i32* %y, i32 1
8     %1 = load i32, i32* %arrayidx2, align 4
9     %arrayidx3 = getelementptr inbounds i32, i32* %x, i32 1
10     store i32 %1, i32* %arrayidx3, align 4
11     ret void
12   }
14 ...
15 ---
16 # CHECK-LABEL: name: ldr_str_aa
17 # CHECK: $w8, $w9 = LDPWi $x1, 0
18 # CHECK: STPWi $w8, $w9, $x0, 0
19 name:            ldr_str_aa
20 tracksRegLiveness: true
21 body:             |
22   bb.0.entry:
23     liveins: $x0, $x1
25     $w8 = LDRWui $x1, 0 :: (load 4 from %ir.y)
26     STRWui killed $w8, $x0, 0 :: (store 4 into %ir.x)
27     $w9 = LDRWui killed $x1, 1 :: (load 4 from %ir.arrayidx2)
28     STRWui killed $w9, killed $x0, 1 :: (store 4 into %ir.arrayidx3)
29     RET undef $lr