51 lines · plain
1; RUN: llc < %s -mtriple=xcore | FileCheck %s2 3define i32 @load32(ptr %p, i32 %offset) nounwind {4entry:5; CHECK-LABEL: load32:6; CHECK: ldw r0, r0[r1]7 %0 = getelementptr i32, ptr %p, i32 %offset8 %1 = load i32, ptr %0, align 49 ret i32 %110}11 12define i32 @load32_imm(ptr %p) nounwind {13entry:14; CHECK-LABEL: load32_imm:15; CHECK: ldw r0, r0[11]16 %0 = getelementptr i32, ptr %p, i32 1117 %1 = load i32, ptr %0, align 418 ret i32 %119}20 21define i32 @load16(ptr %p, i32 %offset) nounwind {22entry:23; CHECK-LABEL: load16:24; CHECK: ld16s r0, r0[r1]25; CHECK-NOT: sext26 %0 = getelementptr i16, ptr %p, i32 %offset27 %1 = load i16, ptr %0, align 228 %2 = sext i16 %1 to i3229 ret i32 %230}31 32define i32 @load8(ptr %p, i32 %offset) nounwind {33entry:34; CHECK-LABEL: load8:35; CHECK: ld8u r0, r0[r1]36; CHECK-NOT: zext37 %0 = getelementptr i8, ptr %p, i32 %offset38 %1 = load i8, ptr %0, align 139 %2 = zext i8 %1 to i3240 ret i32 %241}42 43@GConst = internal constant i32 4244define i32 @load_cp() nounwind {45entry:46; CHECK-LABEL: load_cp:47; CHECK: ldw r0, cp[GConst]48 %0 = load i32, ptr @GConst49 ret i32 %050}51