Home | History | Annotate | Download | only in AArch64
      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   }
     13 
     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
     24 
     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
     30 
     31