OSDN Git Service

Weekly fix of register allocation dependent unit tests.
[android-x86/external-llvm.git] / test / CodeGen / ARM / unaligned_load_store.ll
1 ; RUN: llc < %s -march=arm -pre-RA-sched=source | FileCheck %s -check-prefix=GENERIC
2 ; RUN: llc < %s -mtriple=armv6-apple-darwin | FileCheck %s -check-prefix=DARWIN_V6
3 ; RUN: llc < %s -mtriple=armv6-apple-darwin -arm-strict-align | FileCheck %s -check-prefix=GENERIC
4 ; RUN: llc < %s -mtriple=armv6-linux | FileCheck %s -check-prefix=GENERIC
5
6 ; rdar://7113725
7
8 define void @t(i8* nocapture %a, i8* nocapture %b) nounwind {
9 entry:
10 ; GENERIC: t:
11 ; GENERIC: ldrb [[R2:r[0-9]+]]
12 ; GENERIC: ldrb [[R3:r[0-9]+]]
13 ; GENERIC: ldrb [[R12:r[0-9]+]]
14 ; GENERIC: ldrb [[R1:r[0-9]+]]
15 ; GENERIC: strb [[R1]]
16 ; GENERIC: strb [[R12]]
17 ; GENERIC: strb [[R3]]
18 ; GENERIC: strb [[R2]]
19
20 ; DARWIN_V6: t:
21 ; DARWIN_V6: ldr r1
22 ; DARWIN_V6: str r1
23
24   %__src1.i = bitcast i8* %b to i32*              ; <i32*> [#uses=1]
25   %__dest2.i = bitcast i8* %a to i32*             ; <i32*> [#uses=1]
26   %tmp.i = load i32* %__src1.i, align 1           ; <i32> [#uses=1]
27   store i32 %tmp.i, i32* %__dest2.i, align 1
28   ret void
29 }