1 ; RUN: llc < %s -march=bpfel | FileCheck %s 2 3 define i16 @am1(i16* %a) nounwind { 4 %1 = load i16, i16* %a 5 ret i16 %1 6 } 7 ; CHECK-LABEL: am1: 8 ; CHECK: ldh r0, 0(r1) 9 10 @foo = external global i16 11 12 define i16 @am2() nounwind { 13 %1 = load i16, i16* @foo 14 ret i16 %1 15 } 16 ; CHECK-LABEL: am2: 17 ; CHECK: ldh r0, 0(r1) 18 19 define i16 @am4() nounwind { 20 %1 = load volatile i16, i16* inttoptr(i16 32 to i16*) 21 ret i16 %1 22 } 23 ; CHECK-LABEL: am4: 24 ; CHECK: mov r1, 32 25 ; CHECK: ldh r0, 0(r1) 26 27 define i16 @am5(i16* %a) nounwind { 28 %1 = getelementptr i16, i16* %a, i16 2 29 %2 = load i16, i16* %1 30 ret i16 %2 31 } 32 ; CHECK-LABEL: am5: 33 ; CHECK: ldh r0, 4(r1) 34 35 %S = type { i16, i16 } 36 @baz = common global %S zeroinitializer, align 1 37 38 define i16 @am6() nounwind { 39 %1 = load i16, i16* getelementptr (%S, %S* @baz, i32 0, i32 1) 40 ret i16 %1 41 } 42 ; CHECK-LABEL: am6: 43 ; CHECK: ldh r0, 2(r1) 44