1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/test/CodeGen/BPF/load.ll
Alexei Starovoitov 719b0399a8 convert bpf assembler to look like kernel verifier output
since bpf instruction set was introduced people learned to
read and understand kernel verifier output whereas llvm asm
output stayed obscure and unknown. Convert llvm to emit
assembler text similar to kernel to avoid this discrepancy

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
llvm-svn: 287300
2016-11-18 02:32:35 +00:00

44 lines
895 B
LLVM

; RUN: llc < %s -march=bpfel | FileCheck %s
define i16 @am1(i16* %a) nounwind {
%1 = load i16, i16* %a
ret i16 %1
}
; CHECK-LABEL: am1:
; CHECK: r0 = *(u16 *)(r1 + 0)
@foo = external global i16
define i16 @am2() nounwind {
%1 = load i16, i16* @foo
ret i16 %1
}
; CHECK-LABEL: am2:
; CHECK: r0 = *(u16 *)(r1 + 0)
define i16 @am4() nounwind {
%1 = load volatile i16, i16* inttoptr(i16 32 to i16*)
ret i16 %1
}
; CHECK-LABEL: am4:
; CHECK: r1 = 32
; CHECK: r0 = *(u16 *)(r1 + 0)
define i16 @am5(i16* %a) nounwind {
%1 = getelementptr i16, i16* %a, i16 2
%2 = load i16, i16* %1
ret i16 %2
}
; CHECK-LABEL: am5:
; CHECK: r0 = *(u16 *)(r1 + 4)
%S = type { i16, i16 }
@baz = common global %S zeroinitializer, align 1
define i16 @am6() nounwind {
%1 = load i16, i16* getelementptr (%S, %S* @baz, i32 0, i32 1)
ret i16 %1
}
; CHECK-LABEL: am6:
; CHECK: r0 = *(u16 *)(r1 + 2)