1 ; RUN: llc < %s -march=xcore | FileCheck %s
3 ; Byte aligned load.
4 ; CHECK: align1
5 ; CHECK: bl __misaligned_load
6 define i32 @align1(i32* %p) nounwind {
7 entry:
8 %0 = load i32* %p, align 1 ; <i32> [#uses=1]
9 ret i32 %0
10 }
12 ; Half word aligned load.
13 ; CHECK-LABEL: align2:
14 ; CHECK: ld16s
15 ; CHECK: ld16s
16 ; CHECK: or
17 define i32 @align2(i32* %p) nounwind {
18 entry:
19 %0 = load i32* %p, align 2 ; <i32> [#uses=1]
20 ret i32 %0
21 }
23 @a = global [5 x i8] zeroinitializer, align 4
25 ; Constant offset from word aligned base.
26 ; CHECK-LABEL: align3:
27 ; CHECK: ldw {{r[0-9]+}}, dp
28 ; CHECK: ldw {{r[0-9]+}}, dp
29 ; CHECK: or
30 define i32 @align3() nounwind {
31 entry:
32 %0 = load i32* bitcast (i8* getelementptr ([5 x i8]* @a, i32 0, i32 1) to i32*), align 1
33 ret i32 %0
34 }