[ARM] Split large truncating MVE stores
[llvm-complete.git] / test / CodeGen / XCore / unaligned_load.ll
blob325da8f4432d4464e43e9869bb179aed0eead9bc
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, i32* %p, align 1         ; <i32> [#uses=1]
9         ret i32 %0
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, i32* %p, align 2         ; <i32> [#uses=1]
20         ret i32 %0
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, i32* bitcast (i8* getelementptr ([5 x i8], [5 x i8]* @a, i32 0, i32 1) to i32*), align 1
33         ret i32 %0