Home | History | Annotate | Download | only in BPF
      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