X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FARM%2Funaligned_load_store.ll;h=e7ff63f8dbb05b9817fd7ea97968cbea4fbcdb2a;hb=504a7fb8f9499a46d7c62a691cb6fa373e23387b;hp=869b92675def6ccc713ae2f22a925856c8163d45;hpb=a99c508c8d34c073619b71d4f50cb28110cb1a2a;p=oota-llvm.git diff --git a/test/CodeGen/ARM/unaligned_load_store.ll b/test/CodeGen/ARM/unaligned_load_store.ll index 869b92675de..e7ff63f8dbb 100644 --- a/test/CodeGen/ARM/unaligned_load_store.ll +++ b/test/CodeGen/ARM/unaligned_load_store.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=arm -pre-RA-sched=source | FileCheck %s -check-prefix=EXPANDED -; RUN: llc < %s -mtriple=armv6-apple-darwin -mcpu=cortex-a8 -arm-strict-align -pre-RA-sched=source | FileCheck %s -check-prefix=EXPANDED +; RUN: llc < %s -mtriple=armv6-apple-darwin -mcpu=cortex-a8 -mattr=-neon -arm-strict-align -pre-RA-sched=source | FileCheck %s -check-prefix=EXPANDED ; RUN: llc < %s -mtriple=armv6-apple-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=UNALIGNED ; rdar://7113725 @@ -7,7 +7,7 @@ define void @t(i8* nocapture %a, i8* nocapture %b) nounwind { entry: -; EXPANDED: t: +; EXPANDED-LABEL: t: ; EXPANDED: ldrb [[R2:r[0-9]+]] ; EXPANDED: ldrb [[R3:r[0-9]+]] ; EXPANDED: ldrb [[R12:r[0-9]+]] @@ -17,7 +17,7 @@ entry: ; EXPANDED: strb [[R3]] ; EXPANDED: strb [[R2]] -; UNALIGNED: t: +; UNALIGNED-LABEL: t: ; UNALIGNED: ldr r1 ; UNALIGNED: str r1 @@ -30,13 +30,13 @@ entry: define void @hword(double* %a, double* %b) nounwind { entry: -; EXPANDED: hword: +; EXPANDED-LABEL: hword: ; EXPANDED-NOT: vld1 ; EXPANDED: ldrh ; EXPANDED-NOT: str1 ; EXPANDED: strh -; UNALIGNED: hword: +; UNALIGNED-LABEL: hword: ; UNALIGNED: vld1.16 ; UNALIGNED: vst1.16 %tmp = load double* %a, align 2 @@ -46,16 +46,32 @@ entry: define void @byte(double* %a, double* %b) nounwind { entry: -; EXPANDED: byte: +; EXPANDED-LABEL: byte: ; EXPANDED-NOT: vld1 ; EXPANDED: ldrb ; EXPANDED-NOT: str1 ; EXPANDED: strb -; UNALIGNED: byte: +; UNALIGNED-LABEL: byte: ; UNALIGNED: vld1.8 ; UNALIGNED: vst1.8 %tmp = load double* %a, align 1 store double %tmp, double* %b, align 1 ret void } + +define void @byte_word_ops(i32* %a, i32* %b) nounwind { +entry: +; EXPANDED-LABEL: byte_word_ops: +; EXPANDED: ldrb +; EXPANDED: strb + +; UNALIGNED-LABEL: byte_word_ops: +; UNALIGNED-NOT: ldrb +; UNALIGNED: ldr +; UNALIGNED-NOT: strb +; UNALIGNED: str + %tmp = load i32* %a, align 1 + store i32 %tmp, i32* %b, align 1 + ret void +}