Use static inline to do the right thing when built in C99 mode. Of course,
[llvm/stm8.git] / test / CodeGen / ARM / unaligned_load_store.ll
blobb42e11f2c4abf4a4f613bf935650d3216c851483
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
6 ; rdar://7113725
8 define void @t(i8* nocapture %a, i8* nocapture %b) nounwind {
9 entry:
10 ; GENERIC: t:
11 ; GENERIC: ldrb r2
12 ; GENERIC: ldrb r3
13 ; GENERIC: ldrb r12
14 ; GENERIC: ldrb r1
15 ; GENERIC: strb r1
16 ; GENERIC: strb r12
17 ; GENERIC: strb r3
18 ; GENERIC: strb r2
20 ; DARWIN_V6: t:
21 ; DARWIN_V6: ldr r1
22 ; DARWIN_V6: str r1
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