aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/BPF
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/BPF')
-rw-r--r--test/CodeGen/BPF/alu8.ll45
-rw-r--r--test/CodeGen/BPF/atomics.ll19
-rw-r--r--test/CodeGen/BPF/basictest.ll28
-rw-r--r--test/CodeGen/BPF/byval.ll27
-rw-r--r--test/CodeGen/BPF/cc_args.ll95
-rw-r--r--test/CodeGen/BPF/cc_args_be.ll96
-rw-r--r--test/CodeGen/BPF/cc_ret.ll48
-rw-r--r--test/CodeGen/BPF/cmp.ll119
-rw-r--r--test/CodeGen/BPF/dwarfdump.ll64
-rw-r--r--test/CodeGen/BPF/ex1.ll46
-rw-r--r--test/CodeGen/BPF/fi_ri.ll25
-rw-r--r--test/CodeGen/BPF/intrinsics.ll86
-rw-r--r--test/CodeGen/BPF/lit.local.cfg2
-rw-r--r--test/CodeGen/BPF/load.ll43
-rw-r--r--test/CodeGen/BPF/loops.ll111
-rw-r--r--test/CodeGen/BPF/many_args1.ll12
-rw-r--r--test/CodeGen/BPF/many_args2.ll15
-rw-r--r--test/CodeGen/BPF/mem_offset.ll17
-rw-r--r--test/CodeGen/BPF/mem_offset_be.ll18
-rw-r--r--test/CodeGen/BPF/objdump_atomics.ll19
-rw-r--r--test/CodeGen/BPF/objdump_intrinsics.ll86
-rw-r--r--test/CodeGen/BPF/objdump_trivial.ll18
-rw-r--r--test/CodeGen/BPF/reloc.ll43
-rw-r--r--test/CodeGen/BPF/remove_truncate_1.ll87
-rw-r--r--test/CodeGen/BPF/remove_truncate_2.ll65
-rw-r--r--test/CodeGen/BPF/rodata_1.ll52
-rw-r--r--test/CodeGen/BPF/rodata_2.ll51
-rw-r--r--test/CodeGen/BPF/rodata_3.ll41
-rw-r--r--test/CodeGen/BPF/rodata_4.ll43
-rw-r--r--test/CodeGen/BPF/sanity.ll117
-rw-r--r--test/CodeGen/BPF/sdiv_error.ll9
-rw-r--r--test/CodeGen/BPF/setcc.ll99
-rw-r--r--test/CodeGen/BPF/shifts.ll100
-rw-r--r--test/CodeGen/BPF/sockex2.ll324
-rw-r--r--test/CodeGen/BPF/struct_ret1.ll17
-rw-r--r--test/CodeGen/BPF/struct_ret2.ll12
-rw-r--r--test/CodeGen/BPF/undef.ll73
-rw-r--r--test/CodeGen/BPF/vararg1.ll9
-rw-r--r--test/CodeGen/BPF/warn-call.ll69
-rw-r--r--test/CodeGen/BPF/warn-stack.ll76
40 files changed, 0 insertions, 2326 deletions
diff --git a/test/CodeGen/BPF/alu8.ll b/test/CodeGen/BPF/alu8.ll
deleted file mode 100644
index 73e7a8cf77f3..000000000000
--- a/test/CodeGen/BPF/alu8.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llc -march=bpfel -show-mc-encoding < %s | FileCheck %s
-
-define i8 @mov(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: mov:
-; CHECK: r0 = r2 # encoding: [0xbf,0x20,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: exit # encoding: [0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
- ret i8 %b
-}
-
-define i8 @add(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: add:
-; CHECK: r1 += r2 # encoding: [0x0f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: r0 = r1 # encoding: [0xbf,0x10,0x00,0x00,0x00,0x00,0x00,0x00]
- %1 = add i8 %a, %b
- ret i8 %1
-}
-
-define i8 @and(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: and:
-; CHECK: r1 &= r2 # encoding: [0x5f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %1 = and i8 %a, %b
- ret i8 %1
-}
-
-define i8 @bis(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: bis:
-; CHECK: r1 |= r2 # encoding: [0x4f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %1 = or i8 %a, %b
- ret i8 %1
-}
-
-define i8 @xorand(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: xorand:
-; CHECK: r2 ^= -1 # encoding: [0xa7,0x02,0x00,0x00,0xff,0xff,0xff,0xff]
- %1 = xor i8 %b, -1
- %2 = and i8 %a, %1
- ret i8 %2
-}
-
-define i8 @xor(i8 %a, i8 %b) nounwind {
-; CHECK-LABEL: xor:
-; CHECK: r1 ^= r2 # encoding: [0xaf,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %1 = xor i8 %a, %b
- ret i8 %1
-}
diff --git a/test/CodeGen/BPF/atomics.ll b/test/CodeGen/BPF/atomics.ll
deleted file mode 100644
index 64c45aa4949b..000000000000
--- a/test/CodeGen/BPF/atomics.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llc < %s -march=bpfel -verify-machineinstrs -show-mc-encoding | FileCheck %s
-
-; CHECK-LABEL: test_load_add_32
-; CHECK: lock *(u32 *)(r1 + 0) += r2
-; CHECK: encoding: [0xc3,0x21
-define void @test_load_add_32(i32* %p, i32 zeroext %v) {
-entry:
- atomicrmw add i32* %p, i32 %v seq_cst
- ret void
-}
-
-; CHECK-LABEL: test_load_add_64
-; CHECK: lock *(u64 *)(r1 + 0) += r2
-; CHECK: encoding: [0xdb,0x21
-define void @test_load_add_64(i64* %p, i64 zeroext %v) {
-entry:
- atomicrmw add i64* %p, i64 %v seq_cst
- ret void
-}
diff --git a/test/CodeGen/BPF/basictest.ll b/test/CodeGen/BPF/basictest.ll
deleted file mode 100644
index 13a49806ed4f..000000000000
--- a/test/CodeGen/BPF/basictest.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llc < %s -march=bpfel | FileCheck %s
-
-define i32 @test0(i32 %X) {
- %tmp.1 = add i32 %X, 1
- ret i32 %tmp.1
-; CHECK-LABEL: test0:
-; CHECK: r1 += 1
-}
-
-; CHECK-LABEL: store_imm:
-; CHECK: *(u32 *)(r1 + 0) = r{{[03]}}
-; CHECK: *(u32 *)(r2 + 4) = r{{[03]}}
-define i32 @store_imm(i32* %a, i32* %b) {
-entry:
- store i32 0, i32* %a, align 4
- %0 = getelementptr inbounds i32, i32* %b, i32 1
- store i32 0, i32* %0, align 4
- ret i32 0
-}
-
-@G = external global i8
-define zeroext i8 @loadG() {
- %tmp = load i8, i8* @G
- ret i8 %tmp
-; CHECK-LABEL: loadG:
-; CHECK: r1 =
-; CHECK: r0 = *(u8 *)(r1 + 0)
-}
diff --git a/test/CodeGen/BPF/byval.ll b/test/CodeGen/BPF/byval.ll
deleted file mode 100644
index 25ba909d9cd7..000000000000
--- a/test/CodeGen/BPF/byval.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: by value not supported
-
-%struct.S = type { [10 x i32] }
-
-; Function Attrs: nounwind uwtable
-define void @bar(i32 %a) #0 {
-entry:
- %.compoundliteral = alloca %struct.S, align 8
- %arrayinit.begin = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 0
- store i32 1, i32* %arrayinit.begin, align 8
- %arrayinit.element = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 1
- store i32 2, i32* %arrayinit.element, align 4
- %arrayinit.element2 = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 2
- store i32 3, i32* %arrayinit.element2, align 8
- %arrayinit.start = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 3
- %scevgep4 = bitcast i32* %arrayinit.start to i8*
- call void @llvm.memset.p0i8.i64(i8* %scevgep4, i8 0, i64 28, i32 4, i1 false)
- call void @foo(i32 %a, %struct.S* byval align 8 %.compoundliteral) #3
- ret void
-}
-
-declare void @foo(i32, %struct.S* byval align 8) #1
-
-; Function Attrs: nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #3
diff --git a/test/CodeGen/BPF/cc_args.ll b/test/CodeGen/BPF/cc_args.ll
deleted file mode 100644
index a2ac03f0da12..000000000000
--- a/test/CodeGen/BPF/cc_args.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; RUN: not llc < %s -march=bpfel -show-mc-encoding | FileCheck %s
-
-define void @test() #0 {
-entry:
-; CHECK: test:
-
-; CHECK: r1 = 123 # encoding: [0xb7,0x01,0x00,0x00,0x7b,0x00,0x00,0x00]
-; CHECK: call f_i16
- call void @f_i16(i16 123)
-
-; CHECK: r1 = 12345678 # encoding: [0xb7,0x01,0x00,0x00,0x4e,0x61,0xbc,0x00]
-; CHECK: call f_i32
- call void @f_i32(i32 12345678)
-
-; CHECK: r1 = 72623859790382856ll # encoding: [0x18,0x01,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x00,0x00,0x00,0x04,0x03,0x02,0x01]
-; CHECK: call f_i64
- call void @f_i64(i64 72623859790382856)
-
-; CHECK: r1 = 1234
-; CHECK: r2 = 5678
-; CHECK: call f_i32_i32
- call void @f_i32_i32(i32 1234, i32 5678)
-
-; CHECK: r1 = 2
-; CHECK: r2 = 3
-; CHECK: r3 = 4
-; CHECK: call f_i16_i32_i16
- call void @f_i16_i32_i16(i16 2, i32 3, i16 4)
-
-; CHECK: r1 = 5
-; CHECK: r2 = 7262385979038285ll
-; CHECK: r3 = 6
-; CHECK: call f_i16_i64_i16
- call void @f_i16_i64_i16(i16 5, i64 7262385979038285, i16 6)
-
- ret void
-}
-
-@g_i16 = common global i16 0, align 2
-@g_i32 = common global i32 0, align 2
-@g_i64 = common global i64 0, align 4
-
-define void @f_i16(i16 %a) #0 {
-; CHECK: f_i16:
-; CHECK: *(u16 *)(r2 + 0) = r1 # encoding: [0x6b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
- store volatile i16 %a, i16* @g_i16, align 2
- ret void
-}
-
-define void @f_i32(i32 %a) #0 {
-; CHECK: f_i32:
-; CHECK: *(u16 *)(r2 + 0) = r1 # encoding: [0x6b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: *(u16 *)(r2 + 2) = r1 # encoding: [0x6b,0x12,0x02,0x00,0x00,0x00,0x00,0x00]
- store volatile i32 %a, i32* @g_i32, align 2
- ret void
-}
-
-define void @f_i64(i64 %a) #0 {
-; CHECK: f_i64:
-; CHECK: *(u32 *)(r2 + 0) = r1
-; CHECK: *(u32 *)(r2 + 4) = r1 # encoding: [0x63,0x12,0x04,0x00,0x00,0x00,0x00,0x00]
- store volatile i64 %a, i64* @g_i64, align 2
- ret void
-}
-
-define void @f_i32_i32(i32 %a, i32 %b) #0 {
-; CHECK: f_i32_i32:
-; CHECK: *(u32 *)(r3 + 0) = r1
- store volatile i32 %a, i32* @g_i32, align 4
-; CHECK: *(u32 *)(r3 + 0) = r2
- store volatile i32 %b, i32* @g_i32, align 4
- ret void
-}
-
-define void @f_i16_i32_i16(i16 %a, i32 %b, i16 %c) #0 {
-; CHECK: f_i16_i32_i16:
-; CHECK: *(u16 *)(r4 + 0) = r1
- store volatile i16 %a, i16* @g_i16, align 2
-; CHECK: *(u32 *)(r1 + 0) = r2
- store volatile i32 %b, i32* @g_i32, align 4
-; CHECK: *(u16 *)(r4 + 0) = r3
- store volatile i16 %c, i16* @g_i16, align 2
- ret void
-}
-
-define void @f_i16_i64_i16(i16 %a, i64 %b, i16 %c) #0 {
-; CHECK: f_i16_i64_i16:
-; CHECK: *(u16 *)(r4 + 0) = r1
- store volatile i16 %a, i16* @g_i16, align 2
-; CHECK: *(u64 *)(r1 + 0) = r2 # encoding: [0x7b,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- store volatile i64 %b, i64* @g_i64, align 8
-; CHECK: *(u16 *)(r4 + 0) = r3
- store volatile i16 %c, i16* @g_i16, align 2
- ret void
-}
diff --git a/test/CodeGen/BPF/cc_args_be.ll b/test/CodeGen/BPF/cc_args_be.ll
deleted file mode 100644
index dc41ee0d8a7d..000000000000
--- a/test/CodeGen/BPF/cc_args_be.ll
+++ /dev/null
@@ -1,96 +0,0 @@
-; RUN: not llc < %s -march=bpfeb -show-mc-encoding | FileCheck %s
-; test big endian
-
-define void @test() #0 {
-entry:
-; CHECK: test:
-
-; CHECK: r1 = 123 # encoding: [0xb7,0x10,0x00,0x00,0x00,0x00,0x00,0x7b]
-; CHECK: call f_i16
- call void @f_i16(i16 123)
-
-; CHECK: r1 = 12345678 # encoding: [0xb7,0x10,0x00,0x00,0x00,0xbc,0x61,0x4e]
-; CHECK: call f_i32
- call void @f_i32(i32 12345678)
-
-; CHECK: r1 = 72623859790382856ll # encoding: [0x18,0x10,0x00,0x00,0x05,0x06,0x07,0x08,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04]
-; CHECK: call f_i64
- call void @f_i64(i64 72623859790382856)
-
-; CHECK: r1 = 1234
-; CHECK: r2 = 5678
-; CHECK: call f_i32_i32
- call void @f_i32_i32(i32 1234, i32 5678)
-
-; CHECK: r1 = 2
-; CHECK: r2 = 3
-; CHECK: r3 = 4
-; CHECK: call f_i16_i32_i16
- call void @f_i16_i32_i16(i16 2, i32 3, i16 4)
-
-; CHECK: r1 = 5
-; CHECK: r2 = 7262385979038285ll
-; CHECK: r3 = 6
-; CHECK: call f_i16_i64_i16
- call void @f_i16_i64_i16(i16 5, i64 7262385979038285, i16 6)
-
- ret void
-}
-
-@g_i16 = common global i16 0, align 2
-@g_i32 = common global i32 0, align 2
-@g_i64 = common global i64 0, align 4
-
-define void @f_i16(i16 %a) #0 {
-; CHECK: f_i16:
-; CHECK: *(u16 *)(r2 + 0) = r1 # encoding: [0x6b,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- store volatile i16 %a, i16* @g_i16, align 2
- ret void
-}
-
-define void @f_i32(i32 %a) #0 {
-; CHECK: f_i32:
-; CHECK: *(u16 *)(r2 + 2) = r1 # encoding: [0x6b,0x21,0x00,0x02,0x00,0x00,0x00,0x00]
-; CHECK: *(u16 *)(r2 + 0) = r1 # encoding: [0x6b,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- store volatile i32 %a, i32* @g_i32, align 2
- ret void
-}
-
-define void @f_i64(i64 %a) #0 {
-; CHECK: f_i64:
-; CHECK: *(u32 *)(r2 + 4) = r1 # encoding: [0x63,0x21,0x00,0x04,0x00,0x00,0x00,0x00]
-; CHECK: *(u32 *)(r2 + 0) = r1
- store volatile i64 %a, i64* @g_i64, align 2
- ret void
-}
-
-define void @f_i32_i32(i32 %a, i32 %b) #0 {
-; CHECK: f_i32_i32:
-; CHECK: *(u32 *)(r3 + 0) = r1
- store volatile i32 %a, i32* @g_i32, align 4
-; CHECK: *(u32 *)(r3 + 0) = r2
- store volatile i32 %b, i32* @g_i32, align 4
- ret void
-}
-
-define void @f_i16_i32_i16(i16 %a, i32 %b, i16 %c) #0 {
-; CHECK: f_i16_i32_i16:
-; CHECK: *(u16 *)(r4 + 0) = r1
- store volatile i16 %a, i16* @g_i16, align 2
-; CHECK: *(u32 *)(r1 + 0) = r2
- store volatile i32 %b, i32* @g_i32, align 4
-; CHECK: *(u16 *)(r4 + 0) = r3
- store volatile i16 %c, i16* @g_i16, align 2
- ret void
-}
-
-define void @f_i16_i64_i16(i16 %a, i64 %b, i16 %c) #0 {
-; CHECK: f_i16_i64_i16:
-; CHECK: *(u16 *)(r4 + 0) = r1
- store volatile i16 %a, i16* @g_i16, align 2
-; CHECK: *(u64 *)(r1 + 0) = r2 # encoding: [0x7b,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
- store volatile i64 %b, i64* @g_i64, align 8
-; CHECK: *(u16 *)(r4 + 0) = r3
- store volatile i16 %c, i16* @g_i16, align 2
- ret void
-}
diff --git a/test/CodeGen/BPF/cc_ret.ll b/test/CodeGen/BPF/cc_ret.ll
deleted file mode 100644
index eab2a359b8f2..000000000000
--- a/test/CodeGen/BPF/cc_ret.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: not llc < %s -march=bpfel | FileCheck %s
-
-define void @test() #0 {
-entry:
-; CHECK: test:
-
-; CHECK: call f_i16
-; CHECK: *(u16 *)(r1 + 0) = r0
- %0 = call i16 @f_i16()
- store volatile i16 %0, i16* @g_i16
-
-; CHECK: call f_i32
-; CHECK: *(u32 *)(r1 + 0) = r0
- %1 = call i32 @f_i32()
- store volatile i32 %1, i32* @g_i32
-
-; CHECK: call f_i64
-; CHECK: *(u64 *)(r1 + 0) = r0
- %2 = call i64 @f_i64()
- store volatile i64 %2, i64* @g_i64
-
- ret void
-}
-
-@g_i16 = common global i16 0, align 2
-@g_i32 = common global i32 0, align 2
-@g_i64 = common global i64 0, align 2
-
-define i16 @f_i16() #0 {
-; CHECK: f_i16:
-; CHECK: r0 = 1
-; CHECK: exit
- ret i16 1
-}
-
-define i32 @f_i32() #0 {
-; CHECK: f_i32:
-; CHECK: r0 = 16909060
-; CHECK: exit
- ret i32 16909060
-}
-
-define i64 @f_i64() #0 {
-; CHECK: f_i64:
-; CHECK: r0 = 72623859790382856ll
-; CHECK: exit
- ret i64 72623859790382856
-}
diff --git a/test/CodeGen/BPF/cmp.ll b/test/CodeGen/BPF/cmp.ll
deleted file mode 100644
index 66345ab52a10..000000000000
--- a/test/CodeGen/BPF/cmp.ll
+++ /dev/null
@@ -1,119 +0,0 @@
-; RUN: llc < %s -march=bpf | FileCheck %s
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_cmp1(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp sgt i8 %a, %b
- br i1 %1, label %2, label %4
-
-; <label>:2 ; preds = %0
- %3 = mul i8 %b, %a
- br label %6
-
-; <label>:4 ; preds = %0
- %5 = shl i8 %b, 3
- br label %6
-
-; <label>:6 ; preds = %4, %2
- %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]
- ret i8 %.0
-; CHECK-LABEL:foo_cmp1:
-; CHECK: if r2 s>= r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_cmp2(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp slt i8 %a, %b
- br i1 %1, label %4, label %2
-
-; <label>:2 ; preds = %0
- %3 = mul i8 %b, %a
- br label %6
-
-; <label>:4 ; preds = %0
- %5 = shl i8 %b, 3
- br label %6
-
-; <label>:6 ; preds = %4, %2
- %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]
- ret i8 %.0
-; CHECK-LABEL:foo_cmp2:
-; CHECK: if r2 s> r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_cmp3(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp slt i8 %a, %b
- br i1 %1, label %2, label %4
-
-; <label>:2 ; preds = %0
- %3 = mul i8 %b, %a
- br label %6
-
-; <label>:4 ; preds = %0
- %5 = shl i8 %b, 3
- br label %6
-
-; <label>:6 ; preds = %4, %2
- %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]
- ret i8 %.0
-; CHECK-LABEL:foo_cmp3:
-; CHECK: if r1 s>= r2
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_cmp4(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp sgt i8 %a, %b
- br i1 %1, label %4, label %2
-
-; <label>:2 ; preds = %0
- %3 = mul i8 %b, %a
- br label %6
-
-; <label>:4 ; preds = %0
- %5 = shl i8 %b, 3
- br label %6
-
-; <label>:6 ; preds = %4, %2
- %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]
- ret i8 %.0
-; CHECK-LABEL:foo_cmp4:
-; CHECK: if r1 s> r2
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @min(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp slt i8 %a, %b
- %a.b = select i1 %1, i8 %a, i8 %b
- ret i8 %a.b
-; CHECK-LABEL:min:
-; CHECK: if r2 s> r1
-; CHECK: r1 = r2
-; CHECK: r0 = r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define zeroext i8 @minu(i8 zeroext %a, i8 zeroext %b) #0 {
- %1 = icmp ult i8 %a, 100
- %a.b = select i1 %1, i8 %a, i8 %b
- ret i8 %a.b
-; CHECK-LABEL:minu:
-; CHECK: if r3 > r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @max(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp sgt i8 %a, %b
- %a.b = select i1 %1, i8 %a, i8 %b
- ret i8 %a.b
-; CHECK-LABEL:max:
-; CHECK: if r1 s> r2
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @meq(i8 signext %a, i8 signext %b, i8 signext %c) #0 {
- %1 = icmp eq i8 %a, %b
- %c.a = select i1 %1, i8 %c, i8 %a
- ret i8 %c.a
-; CHECK-LABEL:meq:
-; CHECK: if r1 == r2
-}
diff --git a/test/CodeGen/BPF/dwarfdump.ll b/test/CodeGen/BPF/dwarfdump.ll
deleted file mode 100644
index 6a6913011e64..000000000000
--- a/test/CodeGen/BPF/dwarfdump.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llc -O2 -march=bpfel %s -o %t -filetype=obj
-; RUN: llvm-dwarfdump -debug-dump=line %t | FileCheck %s
-; RUN: llc -O2 -march=bpfeb %s -o %t -filetype=obj
-; RUN: llvm-dwarfdump -debug-dump=line %t | FileCheck %s
-
-source_filename = "testprog.c"
-target datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128"
-target triple = "bpf"
-
-@testprog.myvar_c = internal unnamed_addr global i32 0, align 4, !dbg !0
-
-; Function Attrs: nounwind
-define i32 @testprog(i32, i32) local_unnamed_addr #0 !dbg !2 {
- tail call void @llvm.dbg.value(metadata i32 %0, i64 0, metadata !11, metadata !16), !dbg !17
- tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !12, metadata !16), !dbg !18
- %3 = load i32, i32* @testprog.myvar_c, align 4, !dbg !19, !tbaa !20
- %4 = add i32 %1, %0, !dbg !24
- %5 = add i32 %4, %3, !dbg !25
- store i32 %5, i32* @testprog.myvar_c, align 4, !dbg !26, !tbaa !20
- ret i32 %5, !dbg !27
-}
-
-; Function Attrs: nounwind readnone
-declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1
-
-attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #1 = { nounwind readnone }
-
-!llvm.dbg.cu = !{!7}
-!llvm.module.flags = !{!13, !14}
-!llvm.ident = !{!15}
-
-!0 = distinct !DIGlobalVariableExpression(var: !1)
-!1 = !DIGlobalVariable(name: "myvar_c", scope: !2, file: !3, line: 3, type: !6, isLocal: true, isDefinition: true)
-!2 = distinct !DISubprogram(name: "testprog", scope: !3, file: !3, line: 1, type: !4, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !7, variables: !10)
-!3 = !DIFile(filename: "testprog.c", directory: "/w/llvm/bld")
-!4 = !DISubroutineType(types: !5)
-!5 = !{!6, !6, !6}
-!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!7 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0 (trunk 287518) (llvm/trunk 287520)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !8, globals: !9)
-!8 = !{}
-!9 = !{!0}
-!10 = !{!11, !12}
-!11 = !DILocalVariable(name: "myvar_a", arg: 1, scope: !2, file: !3, line: 1, type: !6)
-!12 = !DILocalVariable(name: "myvar_b", arg: 2, scope: !2, file: !3, line: 1, type: !6)
-!13 = !{i32 2, !"Dwarf Version", i32 4}
-!14 = !{i32 2, !"Debug Info Version", i32 3}
-!15 = !{!"clang version 4.0.0 (trunk 287518) (llvm/trunk 287520)"}
-!16 = !DIExpression()
-!17 = !DILocation(line: 1, column: 18, scope: !2)
-!18 = !DILocation(line: 1, column: 31, scope: !2)
-!19 = !DILocation(line: 5, column: 19, scope: !2)
-!20 = !{!21, !21, i64 0}
-!21 = !{!"int", !22, i64 0}
-!22 = !{!"omnipotent char", !23, i64 0}
-!23 = !{!"Simple C/C++ TBAA"}
-!24 = !DILocation(line: 5, column: 27, scope: !2)
-!25 = !DILocation(line: 7, column: 27, scope: !2)
-!26 = !DILocation(line: 7, column: 17, scope: !2)
-!27 = !DILocation(line: 9, column: 9, scope: !2)
-
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 testprog.c
-; CHECK: 0x0000000000000000 2
-; CHECK: 0x0000000000000020 7
diff --git a/test/CodeGen/BPF/ex1.ll b/test/CodeGen/BPF/ex1.ll
deleted file mode 100644
index 2f77884f5ef0..000000000000
--- a/test/CodeGen/BPF/ex1.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llc < %s -march=bpfel | FileCheck %s
-
-%struct.bpf_context = type { i64, i64, i64, i64, i64, i64, i64 }
-%struct.sk_buff = type { i64, i64, i64, i64, i64, i64, i64 }
-%struct.net_device = type { i64, i64, i64, i64, i64, i64, i64 }
-
-@bpf_prog1.devname = private unnamed_addr constant [3 x i8] c"lo\00", align 1
-@bpf_prog1.fmt = private unnamed_addr constant [15 x i8] c"skb %x dev %x\0A\00", align 1
-
-; Function Attrs: nounwind uwtable
-define i32 @bpf_prog1(%struct.bpf_context* nocapture %ctx) #0 section "events/net/netif_receive_skb" {
- %devname = alloca [3 x i8], align 1
- %fmt = alloca [15 x i8], align 1
- %1 = getelementptr inbounds [3 x i8], [3 x i8]* %devname, i64 0, i64 0
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @bpf_prog1.devname, i64 0, i64 0), i64 3, i32 1, i1 false)
- %2 = getelementptr inbounds %struct.bpf_context, %struct.bpf_context* %ctx, i64 0, i32 0
- %3 = load i64, i64* %2, align 8
- %4 = inttoptr i64 %3 to %struct.sk_buff*
- %5 = getelementptr inbounds %struct.sk_buff, %struct.sk_buff* %4, i64 0, i32 2
- %6 = bitcast i64* %5 to i8*
- %7 = call i8* inttoptr (i64 4 to i8* (i8*)*)(i8* %6) #1
- %8 = call i32 inttoptr (i64 9 to i32 (i8*, i8*, i32)*)(i8* %7, i8* %1, i32 2) #1
- %9 = icmp eq i32 %8, 0
- br i1 %9, label %10, label %13
-
-; <label>:10 ; preds = %0
- %11 = getelementptr inbounds [15 x i8], [15 x i8]* %fmt, i64 0, i64 0
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @bpf_prog1.fmt, i64 0, i64 0), i64 15, i32 1, i1 false)
- %12 = call i32 (i8*, i32, ...) inttoptr (i64 11 to i32 (i8*, i32, ...)*)(i8* %11, i32 15, %struct.sk_buff* %4, i8* %7) #1
-; CHECK-LABEL: bpf_prog1:
-; CHECK: call 4
-; CHECK: call 9
-; CHECK: if r0 != 0
-; CHECK: r1 = 622884453
-; CHECK: r1 = 7214898703899978611ll
-; CHECK: call 11
-; CHECK: r0 = 0
-; CHECK: exit
- br label %13
-
-; <label>:13 ; preds = %10, %0
- ret i32 0
-}
-
-; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1
diff --git a/test/CodeGen/BPF/fi_ri.ll b/test/CodeGen/BPF/fi_ri.ll
deleted file mode 100644
index 6ecc82679691..000000000000
--- a/test/CodeGen/BPF/fi_ri.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: not llc < %s -march=bpf | FileCheck %s
-
-%struct.key_t = type { i32, [16 x i8] }
-
-; Function Attrs: nounwind uwtable
-define i32 @test() #0 {
- %key = alloca %struct.key_t, align 4
- %1 = bitcast %struct.key_t* %key to i8*
-; CHECK: r1 = 0
-; CHECK: *(u32 *)(r10 - 8) = r1
-; CHECK: *(u64 *)(r10 - 16) = r1
-; CHECK: *(u64 *)(r10 - 24) = r1
- call void @llvm.memset.p0i8.i64(i8* %1, i8 0, i64 20, i32 4, i1 false)
-; CHECK: r1 = r10
-; CHECK: r1 += -20
- %2 = getelementptr inbounds %struct.key_t, %struct.key_t* %key, i64 0, i32 1, i64 0
-; CHECK: call test1
- call void @test1(i8* %2) #3
- ret i32 0
-}
-
-; Function Attrs: nounwind argmemonly
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1
-
-declare void @test1(i8*) #2
diff --git a/test/CodeGen/BPF/intrinsics.ll b/test/CodeGen/BPF/intrinsics.ll
deleted file mode 100644
index 88aba805adad..000000000000
--- a/test/CodeGen/BPF/intrinsics.ll
+++ /dev/null
@@ -1,86 +0,0 @@
-; RUN: llc < %s -march=bpfel -show-mc-encoding | FileCheck %s
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_b(i64 %foo, i64* nocapture %bar, i8* %ctx, i8* %ctx2) #0 {
- %1 = tail call i64 @llvm.bpf.load.byte(i8* %ctx, i64 123) #2
- %2 = add i64 %1, %foo
- %3 = load volatile i64, i64* %bar, align 8
- %4 = add i64 %2, %3
- %5 = tail call i64 @llvm.bpf.load.byte(i8* %ctx2, i64 %foo) #2
- %6 = add i64 %4, %5
- %7 = load volatile i64, i64* %bar, align 8
- %8 = add i64 %6, %7
- %9 = trunc i64 %8 to i32
- ret i32 %9
-; CHECK-LABEL: ld_b:
-; CHECK: r0 = *(u8 *)skb[123]
-; CHECK: r0 = *(u8 *)skb[r
-}
-
-declare i64 @llvm.bpf.load.byte(i8*, i64) #1
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_h(i8* %ctx, i8* %ctx2, i32 %foo) #0 {
- %1 = tail call i64 @llvm.bpf.load.half(i8* %ctx, i64 123) #2
- %2 = sext i32 %foo to i64
- %3 = tail call i64 @llvm.bpf.load.half(i8* %ctx2, i64 %2) #2
- %4 = add i64 %3, %1
- %5 = trunc i64 %4 to i32
- ret i32 %5
-; CHECK-LABEL: ld_h:
-; CHECK: r0 = *(u16 *)skb[r
-; CHECK: r0 = *(u16 *)skb[123]
-}
-
-declare i64 @llvm.bpf.load.half(i8*, i64) #1
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_w(i8* %ctx, i8* %ctx2, i32 %foo) #0 {
- %1 = tail call i64 @llvm.bpf.load.word(i8* %ctx, i64 123) #2
- %2 = sext i32 %foo to i64
- %3 = tail call i64 @llvm.bpf.load.word(i8* %ctx2, i64 %2) #2
- %4 = add i64 %3, %1
- %5 = trunc i64 %4 to i32
- ret i32 %5
-; CHECK-LABEL: ld_w:
-; CHECK: r0 = *(u32 *)skb[r
-; CHECK: r0 = *(u32 *)skb[123]
-}
-
-declare i64 @llvm.bpf.load.word(i8*, i64) #1
-
-define i32 @ld_pseudo() #0 {
-entry:
- %call = tail call i64 @llvm.bpf.pseudo(i64 2, i64 3)
- tail call void inttoptr (i64 4 to void (i64, i32)*)(i64 %call, i32 4) #2
- ret i32 0
-; CHECK-LABEL: ld_pseudo:
-; CHECK: ld_pseudo r1, 2, 3 # encoding: [0x18,0x21,0x00,0x00,0x03,0x00
-}
-
-declare i64 @llvm.bpf.pseudo(i64, i64) #2
-
-define i32 @bswap(i64 %a, i64 %b, i64 %c) #0 {
-entry:
- %0 = tail call i64 @llvm.bswap.i64(i64 %a)
- %conv = trunc i64 %b to i32
- %1 = tail call i32 @llvm.bswap.i32(i32 %conv)
- %conv1 = zext i32 %1 to i64
- %add = add i64 %conv1, %0
- %conv2 = trunc i64 %c to i16
- %2 = tail call i16 @llvm.bswap.i16(i16 %conv2)
- %conv3 = zext i16 %2 to i64
- %add4 = add i64 %add, %conv3
- %conv5 = trunc i64 %add4 to i32
- ret i32 %conv5
-; CHECK-LABEL: bswap:
-; CHECK: bswap64 r1 # encoding: [0xdc,0x01,0x00,0x00,0x40,0x00,0x00,0x00]
-; CHECK: bswap32 r2 # encoding: [0xdc,0x02,0x00,0x00,0x20,0x00,0x00,0x00]
-; CHECK: r2 += r1 # encoding: [0x0f,0x12,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: bswap16 r3 # encoding: [0xdc,0x03,0x00,0x00,0x10,0x00,0x00,0x00]
-; CHECK: r2 += r3 # encoding: [0x0f,0x32,0x00,0x00,0x00,0x00,0x00,0x00]
-}
-
-declare i64 @llvm.bswap.i64(i64) #1
-declare i32 @llvm.bswap.i32(i32) #1
-declare i16 @llvm.bswap.i16(i16) #1
diff --git a/test/CodeGen/BPF/lit.local.cfg b/test/CodeGen/BPF/lit.local.cfg
deleted file mode 100644
index a4ab2624af61..000000000000
--- a/test/CodeGen/BPF/lit.local.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-if not 'BPF' in config.root.targets:
- config.unsupported = True
diff --git a/test/CodeGen/BPF/load.ll b/test/CodeGen/BPF/load.ll
deleted file mode 100644
index 881917a4c946..000000000000
--- a/test/CodeGen/BPF/load.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; 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)
diff --git a/test/CodeGen/BPF/loops.ll b/test/CodeGen/BPF/loops.ll
deleted file mode 100644
index 39278fe595c2..000000000000
--- a/test/CodeGen/BPF/loops.ll
+++ /dev/null
@@ -1,111 +0,0 @@
-; RUN: llc < %s -march=bpfel | FileCheck %s
-
-define zeroext i16 @add(i16* nocapture %a, i16 zeroext %n) nounwind readonly {
-entry:
- %cmp8 = icmp eq i16 %n, 0 ; <i1> [#uses=1]
- br i1 %cmp8, label %for.end, label %for.body
-
-for.body: ; preds = %for.body, %entry
- %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]
- %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- %arrayidx = getelementptr i16, i16* %a, i16 %i.010 ; <i16*> [#uses=1]
-; CHECK-LABEL: add:
-; CHECK: r{{[0-9]+}} += r{{[0-9]+}}
- %tmp4 = load i16, i16* %arrayidx ; <i16> [#uses=1]
- %add = add i16 %tmp4, %sum.09 ; <i16> [#uses=2]
- %inc = add i16 %i.010, 1 ; <i16> [#uses=2]
- %exitcond = icmp eq i16 %inc, %n ; <i1> [#uses=1]
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- ret i16 %sum.0.lcssa
-}
-
-define zeroext i16 @sub(i16* nocapture %a, i16 zeroext %n) nounwind readonly {
-entry:
- %cmp8 = icmp eq i16 %n, 0 ; <i1> [#uses=1]
- br i1 %cmp8, label %for.end, label %for.body
-
-for.body: ; preds = %for.body, %entry
- %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]
- %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- %arrayidx = getelementptr i16, i16* %a, i16 %i.010 ; <i16*> [#uses=1]
-; CHECK-LABEL: sub:
-; CHECK: r{{[0-9]+}} -= r{{[0-9]+}}
- %tmp4 = load i16, i16* %arrayidx ; <i16> [#uses=1]
- %add = sub i16 %tmp4, %sum.09 ; <i16> [#uses=2]
- %inc = add i16 %i.010, 1 ; <i16> [#uses=2]
- %exitcond = icmp eq i16 %inc, %n ; <i1> [#uses=1]
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- ret i16 %sum.0.lcssa
-}
-
-define zeroext i16 @or(i16* nocapture %a, i16 zeroext %n) nounwind readonly {
-entry:
- %cmp8 = icmp eq i16 %n, 0 ; <i1> [#uses=1]
- br i1 %cmp8, label %for.end, label %for.body
-
-for.body: ; preds = %for.body, %entry
- %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]
- %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- %arrayidx = getelementptr i16, i16* %a, i16 %i.010 ; <i16*> [#uses=1]
-; CHECK-LABEL: or:
-; CHECK: r{{[0-9]+}} |= r{{[0-9]+}}
- %tmp4 = load i16, i16* %arrayidx ; <i16> [#uses=1]
- %add = or i16 %tmp4, %sum.09 ; <i16> [#uses=2]
- %inc = add i16 %i.010, 1 ; <i16> [#uses=2]
- %exitcond = icmp eq i16 %inc, %n ; <i1> [#uses=1]
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- ret i16 %sum.0.lcssa
-}
-
-define zeroext i16 @xor(i16* nocapture %a, i16 zeroext %n) nounwind readonly {
-entry:
- %cmp8 = icmp eq i16 %n, 0 ; <i1> [#uses=1]
- br i1 %cmp8, label %for.end, label %for.body
-
-for.body: ; preds = %for.body, %entry
- %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]
- %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- %arrayidx = getelementptr i16, i16* %a, i16 %i.010 ; <i16*> [#uses=1]
-; CHECK-LABEL: xor:
-; CHECK: r{{[0-9]+}} ^= r{{[0-9]+}}
- %tmp4 = load i16, i16* %arrayidx ; <i16> [#uses=1]
- %add = xor i16 %tmp4, %sum.09 ; <i16> [#uses=2]
- %inc = add i16 %i.010, 1 ; <i16> [#uses=2]
- %exitcond = icmp eq i16 %inc, %n ; <i1> [#uses=1]
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- ret i16 %sum.0.lcssa
-}
-
-define zeroext i16 @and(i16* nocapture %a, i16 zeroext %n) nounwind readonly {
-entry:
- %cmp8 = icmp eq i16 %n, 0 ; <i1> [#uses=1]
- br i1 %cmp8, label %for.end, label %for.body
-
-for.body: ; preds = %for.body, %entry
- %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]
- %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- %arrayidx = getelementptr i16, i16* %a, i16 %i.010 ; <i16*> [#uses=1]
-; CHECK-LABEL: and:
-; CHECK: r{{[0-9]+}} &= r{{[0-9]+}}
- %tmp4 = load i16, i16* %arrayidx ; <i16> [#uses=1]
- %add = and i16 %tmp4, %sum.09 ; <i16> [#uses=2]
- %inc = add i16 %i.010, 1 ; <i16> [#uses=2]
- %exitcond = icmp eq i16 %inc, %n ; <i1> [#uses=1]
- br i1 %exitcond, label %for.end, label %for.body
-
-for.end: ; preds = %for.body, %entry
- %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]
- ret i16 %sum.0.lcssa
-}
diff --git a/test/CodeGen/BPF/many_args1.ll b/test/CodeGen/BPF/many_args1.ll
deleted file mode 100644
index 08218f452d06..000000000000
--- a/test/CodeGen/BPF/many_args1.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: too many args
-
-; Function Attrs: nounwind uwtable
-define i32 @foo(i32 %a, i32 %b, i32 %c) #0 {
-entry:
- %call = tail call i32 @bar(i32 %a, i32 %b, i32 %c, i32 1, i32 2, i32 3) #3
- ret i32 %call
-}
-
-declare i32 @bar(i32, i32, i32, i32, i32, i32) #1
diff --git a/test/CodeGen/BPF/many_args2.ll b/test/CodeGen/BPF/many_args2.ll
deleted file mode 100644
index a69886c2b208..000000000000
--- a/test/CodeGen/BPF/many_args2.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: too many args
-
-; Function Attrs: nounwind readnone uwtable
-define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) #0 {
-entry:
- ret i32 1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define i32 @foo(i32 %a, i32 %b, i32 %c) #0 {
-entry:
- ret i32 1
-}
diff --git a/test/CodeGen/BPF/mem_offset.ll b/test/CodeGen/BPF/mem_offset.ll
deleted file mode 100644
index 2b86e44ae592..000000000000
--- a/test/CodeGen/BPF/mem_offset.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llc -march=bpfel -show-mc-encoding < %s | FileCheck %s
-
-; Function Attrs: nounwind
-define i32 @bpf_prog1(i8* nocapture readnone) local_unnamed_addr #0 {
-; CHECK: r1 += -1879113726 # encoding: [0x07,0x01,0x00,0x00,0x02,0x00,0xff,0x8f]
-; CHECK: r0 = *(u64 *)(r1 + 0) # encoding: [0x79,0x10,0x00,0x00,0x00,0x00,0x00,0x00]
- %2 = alloca i64, align 8
- %3 = bitcast i64* %2 to i8*
- store volatile i64 590618314553, i64* %2, align 8
- %4 = load volatile i64, i64* %2, align 8
- %5 = add i64 %4, -1879113726
- %6 = inttoptr i64 %5 to i64*
- %7 = load i64, i64* %6, align 8
- %8 = trunc i64 %7 to i32
- ret i32 %8
-}
-
diff --git a/test/CodeGen/BPF/mem_offset_be.ll b/test/CodeGen/BPF/mem_offset_be.ll
deleted file mode 100644
index e5e352783d70..000000000000
--- a/test/CodeGen/BPF/mem_offset_be.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc -march=bpfeb -show-mc-encoding < %s | FileCheck %s
-
-; Function Attrs: nounwind
-define i32 @bpf_prog1(i8* nocapture readnone) local_unnamed_addr #0 {
-; CHECK: r1 = 590618314553ll # encoding: [0x18,0x10,0x00,0x00,0x83,0x98,0x47,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89]
-; CHECK: r1 += -1879113726 # encoding: [0x07,0x10,0x00,0x00,0x8f,0xff,0x00,0x02]
-; CHECK: r0 = *(u64 *)(r1 + 0) # encoding: [0x79,0x01,0x00,0x00,0x00,0x00,0x00,0x00]
- %2 = alloca i64, align 8
- %3 = bitcast i64* %2 to i8*
- store volatile i64 590618314553, i64* %2, align 8
- %4 = load volatile i64, i64* %2, align 8
- %5 = add i64 %4, -1879113726
- %6 = inttoptr i64 %5 to i64*
- %7 = load i64, i64* %6, align 8
- %8 = trunc i64 %7 to i32
- ret i32 %8
-}
-
diff --git a/test/CodeGen/BPF/objdump_atomics.ll b/test/CodeGen/BPF/objdump_atomics.ll
deleted file mode 100644
index fb59449a1479..000000000000
--- a/test/CodeGen/BPF/objdump_atomics.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llc -march=bpfel -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
-
-; CHECK-LABEL: test_load_add_32
-; CHECK: c3 21
-; CHECK: lock *(u32 *)(r1 + 0) += r2
-define void @test_load_add_32(i32* %p, i32 zeroext %v) {
-entry:
- atomicrmw add i32* %p, i32 %v seq_cst
- ret void
-}
-
-; CHECK-LABEL: test_load_add_64
-; CHECK: db 21
-; CHECK: lock *(u64 *)(r1 + 0) += r2
-define void @test_load_add_64(i64* %p, i64 zeroext %v) {
-entry:
- atomicrmw add i64* %p, i64 %v seq_cst
- ret void
-}
diff --git a/test/CodeGen/BPF/objdump_intrinsics.ll b/test/CodeGen/BPF/objdump_intrinsics.ll
deleted file mode 100644
index 1d33e57de789..000000000000
--- a/test/CodeGen/BPF/objdump_intrinsics.ll
+++ /dev/null
@@ -1,86 +0,0 @@
-; RUN: llc -march=bpfel -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_b(i64 %foo, i64* nocapture %bar, i8* %ctx, i8* %ctx2) #0 {
- %1 = tail call i64 @llvm.bpf.load.byte(i8* %ctx, i64 123) #2
- %2 = add i64 %1, %foo
- %3 = load volatile i64, i64* %bar, align 8
- %4 = add i64 %2, %3
- %5 = tail call i64 @llvm.bpf.load.byte(i8* %ctx2, i64 %foo) #2
- %6 = add i64 %4, %5
- %7 = load volatile i64, i64* %bar, align 8
- %8 = add i64 %6, %7
- %9 = trunc i64 %8 to i32
- ret i32 %9
-; CHECK-LABEL: ld_b:
-; CHECK: r0 = *(u8 *)skb[123]
-; CHECK: r0 = *(u8 *)skb[r
-}
-
-declare i64 @llvm.bpf.load.byte(i8*, i64) #1
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_h(i8* %ctx, i8* %ctx2, i32 %foo) #0 {
- %1 = tail call i64 @llvm.bpf.load.half(i8* %ctx, i64 123) #2
- %2 = sext i32 %foo to i64
- %3 = tail call i64 @llvm.bpf.load.half(i8* %ctx2, i64 %2) #2
- %4 = add i64 %3, %1
- %5 = trunc i64 %4 to i32
- ret i32 %5
-; CHECK-LABEL: ld_h:
-; CHECK: r0 = *(u16 *)skb[r
-; CHECK: r0 = *(u16 *)skb[123]
-}
-
-declare i64 @llvm.bpf.load.half(i8*, i64) #1
-
-; Function Attrs: nounwind uwtable
-define i32 @ld_w(i8* %ctx, i8* %ctx2, i32 %foo) #0 {
- %1 = tail call i64 @llvm.bpf.load.word(i8* %ctx, i64 123) #2
- %2 = sext i32 %foo to i64
- %3 = tail call i64 @llvm.bpf.load.word(i8* %ctx2, i64 %2) #2
- %4 = add i64 %3, %1
- %5 = trunc i64 %4 to i32
- ret i32 %5
-; CHECK-LABEL: ld_w:
-; CHECK: r0 = *(u32 *)skb[r
-; CHECK: r0 = *(u32 *)skb[123]
-}
-
-declare i64 @llvm.bpf.load.word(i8*, i64) #1
-
-define i32 @ld_pseudo() #0 {
-entry:
- %call = tail call i64 @llvm.bpf.pseudo(i64 2, i64 3)
- tail call void inttoptr (i64 4 to void (i64, i32)*)(i64 %call, i32 4) #2
- ret i32 0
-; CHECK-LABEL: ld_pseudo:
-; CHECK: ld_pseudo r1, 2, 3
-}
-
-declare i64 @llvm.bpf.pseudo(i64, i64) #2
-
-define i32 @bswap(i64 %a, i64 %b, i64 %c) #0 {
-entry:
- %0 = tail call i64 @llvm.bswap.i64(i64 %a)
- %conv = trunc i64 %b to i32
- %1 = tail call i32 @llvm.bswap.i32(i32 %conv)
- %conv1 = zext i32 %1 to i64
- %add = add i64 %conv1, %0
- %conv2 = trunc i64 %c to i16
- %2 = tail call i16 @llvm.bswap.i16(i16 %conv2)
- %conv3 = zext i16 %2 to i64
- %add4 = add i64 %add, %conv3
- %conv5 = trunc i64 %add4 to i32
- ret i32 %conv5
-; CHECK-LABEL: bswap:
-; CHECK: bswap64 r1
-; CHECK: bswap32 r2
-; CHECK: r2 += r1
-; CHECK: bswap16 r3
-; CHECK: r2 += r3
-}
-
-declare i64 @llvm.bswap.i64(i64) #1
-declare i32 @llvm.bswap.i32(i32) #1
-declare i16 @llvm.bswap.i16(i16) #1
diff --git a/test/CodeGen/BPF/objdump_trivial.ll b/test/CodeGen/BPF/objdump_trivial.ll
deleted file mode 100644
index 6b5423854ee7..000000000000
--- a/test/CodeGen/BPF/objdump_trivial.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc -march=bpfel -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
-
-; CHECK: if r2 s> r1 goto
-; CHECK: call 1
-; CHECK: exit
-; CHECK: call 2
-; CHECK: exit
-
-define void @foo(i32 %a) {
-%b = icmp sgt i32 %a, -1
-br i1 %b, label %x, label %y
-x:
-call void inttoptr (i64 1 to void ()*)()
-ret void
-y:
-call void inttoptr (i64 2 to void ()*)()
-ret void
-}
diff --git a/test/CodeGen/BPF/reloc.ll b/test/CodeGen/BPF/reloc.ll
deleted file mode 100644
index 75dbebf311e3..000000000000
--- a/test/CodeGen/BPF/reloc.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llc -march=bpfel -filetype=obj < %s | llvm-objdump -r - | FileCheck --check-prefix=CHECK-RELOC %s
-
-%struct.bpf_context = type { i64, i64, i64, i64, i64, i64, i64 }
-%struct.sk_buff = type { i64, i64, i64, i64, i64, i64, i64 }
-%struct.net_device = type { i64, i64, i64, i64, i64, i64, i64 }
-
-@bpf_prog1.devname = private unnamed_addr constant [3 x i8] c"lo\00", align 1
-@bpf_prog1.fmt = private unnamed_addr constant [15 x i8] c"skb %x dev %x\0A\00", align 1
-
-; Function Attrs: norecurse
-define i32 @bpf_prog1(%struct.bpf_context* nocapture %ctx) #0 section "events/net/netif_receive_skb" {
- %devname = alloca [3 x i8], align 1
- %fmt = alloca [15 x i8], align 1
- %1 = getelementptr inbounds [3 x i8], [3 x i8]* %devname, i64 0, i64 0
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @bpf_prog1.devname, i64 0, i64 0), i64 3, i32 1, i1 false)
- %2 = getelementptr inbounds %struct.bpf_context, %struct.bpf_context* %ctx, i64 0, i32 0
- %3 = load i64, i64* %2, align 8
- %4 = inttoptr i64 %3 to %struct.sk_buff*
- %5 = getelementptr inbounds %struct.sk_buff, %struct.sk_buff* %4, i64 0, i32 2
- %6 = bitcast i64* %5 to i8*
- %7 = call i8* inttoptr (i64 4 to i8* (i8*)*)(i8* %6) #1
- %8 = call i32 inttoptr (i64 9 to i32 (i8*, i8*, i32)*)(i8* %7, i8* %1, i32 2) #1
- %9 = icmp eq i32 %8, 0
- br i1 %9, label %10, label %13
-
-; <label>:10 ; preds = %0
- %11 = getelementptr inbounds [15 x i8], [15 x i8]* %fmt, i64 0, i64 0
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @bpf_prog1.fmt, i64 0, i64 0), i64 15, i32 1, i1 false)
- %12 = call i32 (i8*, i32, ...) inttoptr (i64 11 to i32 (i8*, i32, ...)*)(i8* %11, i32 15, %struct.sk_buff* %4, i8* %7) #1
- br label %13
-
-; <label>:13 ; preds = %10, %0
- ret i32 0
-
-; CHECK-RELOC: file format ELF64-BPF
-; CHECK-RELOC: RELOCATION RECORDS FOR [.rel.eh_frame]:
-; CHECK-RELOC: R_BPF_64_64 events/net/netif_receive_skb
-}
-
-; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1
-
-attributes #0 = { norecurse }
diff --git a/test/CodeGen/BPF/remove_truncate_1.ll b/test/CodeGen/BPF/remove_truncate_1.ll
deleted file mode 100644
index 65433853b9d5..000000000000
--- a/test/CodeGen/BPF/remove_truncate_1.ll
+++ /dev/null
@@ -1,87 +0,0 @@
-; RUN: llc < %s -march=bpf -verify-machineinstrs | FileCheck %s
-
-; Source code:
-; struct xdp_md {
-; unsigned data;
-; unsigned data_end;
-; };
-;
-; int gbl;
-; int xdp_dummy(struct xdp_md *xdp)
-; {
-; char tmp;
-; long addr;
-;
-; if (gbl) {
-; long addr1 = (long)xdp->data;
-; tmp = *(char *)addr1;
-; if (tmp == 1)
-; return 3;
-; } else {
-; tmp = *(volatile char *)(long)xdp->data_end;
-; if (tmp == 1)
-; return 2;
-; }
-; addr = (long)xdp->data;
-; tmp = *(volatile char *)addr;
-; if (tmp == 0)
-; return 1;
-; return 0;
-; }
-
-%struct.xdp_md = type { i32, i32 }
-
-@gbl = common local_unnamed_addr global i32 0, align 4
-
-; Function Attrs: norecurse nounwind
-define i32 @xdp_dummy(%struct.xdp_md* nocapture readonly %xdp) local_unnamed_addr #0 {
-entry:
- %0 = load i32, i32* @gbl, align 4
- %tobool = icmp eq i32 %0, 0
- br i1 %tobool, label %if.else, label %if.then
-
-if.then: ; preds = %entry
- %data = getelementptr inbounds %struct.xdp_md, %struct.xdp_md* %xdp, i64 0, i32 0
- %1 = load i32, i32* %data, align 4
- %conv = zext i32 %1 to i64
- %2 = inttoptr i64 %conv to i8*
- %3 = load i8, i8* %2, align 1
- %cmp = icmp eq i8 %3, 1
- br i1 %cmp, label %cleanup20, label %if.end12
-; CHECK: r1 = *(u32 *)(r1 + 0)
-; CHECK: r2 = *(u8 *)(r1 + 0)
-
-if.else: ; preds = %entry
- %data_end = getelementptr inbounds %struct.xdp_md, %struct.xdp_md* %xdp, i64 0, i32 1
- %4 = load i32, i32* %data_end, align 4
- %conv6 = zext i32 %4 to i64
-; CHECK: r2 = *(u32 *)(r1 + 4)
- %5 = inttoptr i64 %conv6 to i8*
- %6 = load volatile i8, i8* %5, align 1
- %cmp8 = icmp eq i8 %6, 1
- br i1 %cmp8, label %cleanup20, label %if.else.if.end12_crit_edge
-
-if.else.if.end12_crit_edge: ; preds = %if.else
- %data13.phi.trans.insert = getelementptr inbounds %struct.xdp_md, %struct.xdp_md* %xdp, i64 0, i32 0
- %.pre = load i32, i32* %data13.phi.trans.insert, align 4
- br label %if.end12
-; CHECK: r1 = *(u32 *)(r1 + 0)
-
-if.end12: ; preds = %if.else.if.end12_crit_edge, %if.then
- %7 = phi i32 [ %.pre, %if.else.if.end12_crit_edge ], [ %1, %if.then ]
- %conv14 = zext i32 %7 to i64
-; CHECK-NOT: r1 <<= 32
-; CHECK-NOT: r1 >>= 32
- %8 = inttoptr i64 %conv14 to i8*
- %9 = load volatile i8, i8* %8, align 1
-; CHECK: r1 = *(u8 *)(r1 + 0)
- %cmp16 = icmp eq i8 %9, 0
- %.28 = zext i1 %cmp16 to i32
- br label %cleanup20
-
-cleanup20: ; preds = %if.then, %if.end12, %if.else
- %retval.1 = phi i32 [ 3, %if.then ], [ 2, %if.else ], [ %.28, %if.end12 ]
- ret i32 %retval.1
-}
-
-attributes #0 = { norecurse nounwind }
diff --git a/test/CodeGen/BPF/remove_truncate_2.ll b/test/CodeGen/BPF/remove_truncate_2.ll
deleted file mode 100644
index 979d820dd857..000000000000
--- a/test/CodeGen/BPF/remove_truncate_2.ll
+++ /dev/null
@@ -1,65 +0,0 @@
-; RUN: llc < %s -march=bpf -verify-machineinstrs | FileCheck %s
-
-; Source code:
-; struct xdp_md {
-; unsigned data;
-; unsigned data_end;
-; };
-;
-; int gbl;
-; int xdp_dummy(struct xdp_md *xdp)
-; {
-; char addr = *(char *)(long)xdp->data;
-; if (gbl) {
-; if (gbl == 1)
-; return 1;
-; if (addr == 1)
-; return 3;
-; } else if (addr == 0)
-; return 2;
-; return 0;
-; }
-
-%struct.xdp_md = type { i32, i32 }
-
-@gbl = common local_unnamed_addr global i32 0, align 4
-
-; Function Attrs: norecurse nounwind readonly
-define i32 @xdp_dummy(%struct.xdp_md* nocapture readonly %xdp) local_unnamed_addr #0 {
-entry:
- %data = getelementptr inbounds %struct.xdp_md, %struct.xdp_md* %xdp, i64 0, i32 0
- %0 = load i32, i32* %data, align 4
- %conv = zext i32 %0 to i64
- %1 = inttoptr i64 %conv to i8*
- %2 = load i8, i8* %1, align 1
-; CHECK: r1 = *(u32 *)(r1 + 0)
-; CHECK: r1 = *(u8 *)(r1 + 0)
- %3 = load i32, i32* @gbl, align 4
- switch i32 %3, label %if.end [
- i32 0, label %if.else
- i32 1, label %cleanup
- ]
-
-if.end: ; preds = %entry
- %cmp4 = icmp eq i8 %2, 1
-; CHECK: r0 = 3
-; CHECK-NOT: r1 &= 255
-; CHECK: if r1 == 1 goto
- br i1 %cmp4, label %cleanup, label %if.end13
-
-if.else: ; preds = %entry
- %cmp9 = icmp eq i8 %2, 0
-; CHECK: r0 = 2
-; CHECK-NOT: r1 &= 255
-; CHECK: if r1 == 0 goto
- br i1 %cmp9, label %cleanup, label %if.end13
-
-if.end13: ; preds = %if.else, %if.end
- br label %cleanup
-
-cleanup: ; preds = %if.else, %if.end, %entry, %if.end13
- %retval.0 = phi i32 [ 0, %if.end13 ], [ 1, %entry ], [ 3, %if.end ], [ 2, %if.else ]
- ret i32 %retval.0
-}
-
-attributes #0 = { norecurse nounwind readonly }
diff --git a/test/CodeGen/BPF/rodata_1.ll b/test/CodeGen/BPF/rodata_1.ll
deleted file mode 100644
index 5566f76bb75c..000000000000
--- a/test/CodeGen/BPF/rodata_1.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llc < %s -march=bpfel -verify-machineinstrs | FileCheck %s
-; RUN: llc < %s -march=bpfeb -verify-machineinstrs | FileCheck %s
-
-; Source code:
-; struct test_t1 {
-; char a, b, c;
-; };
-; struct test_t2 {
-; int a, b, c, d, e;
-; };
-;
-; struct test_t1 g1;
-; struct test_t2 g2;
-; int test()
-; {
-; struct test_t1 t1 = {.c = 1};
-; struct test_t2 t2 = {.c = 1};
-; g1 = t1;
-; g2 = t2;
-; return 0;
-; }
-
-%struct.test_t1 = type { i8, i8, i8 }
-%struct.test_t2 = type { i32, i32, i32, i32, i32 }
-
-@test.t1 = private unnamed_addr constant %struct.test_t1 { i8 0, i8 0, i8 1 }, align 1
-@test.t2 = private unnamed_addr constant %struct.test_t2 { i32 0, i32 0, i32 1, i32 0, i32 0 }, align 4
-@g1 = common local_unnamed_addr global %struct.test_t1 zeroinitializer, align 1
-@g2 = common local_unnamed_addr global %struct.test_t2 zeroinitializer, align 4
-
-; Function Attrs: nounwind
-define i32 @test() local_unnamed_addr #0 {
-; CHECK-LABEL: test:
-
-entry:
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds (%struct.test_t1, %struct.test_t1* @g1, i64 0, i32 0), i8* getelementptr inbounds (%struct.test_t1, %struct.test_t1* @test.t1, i64 0, i32 0), i64 3, i32 1, i1 false)
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.test_t2* @g2 to i8*), i8* bitcast (%struct.test_t2* @test.t2 to i8*), i64 20, i32 4, i1 false)
-; CHECK: r1 = <MCOperand Expr:(g1)>ll
-; CHECK: r2 = 0
-; CHECK: *(u8 *)(r1 + 1) = r2
-; CHECK: r3 = 1
-; CHECK: *(u8 *)(r1 + 2) = r3
-; CHECK: r1 = <MCOperand Expr:(g2)>ll
-; CHECK: *(u32 *)(r1 + 8) = r3
- ret i32 0
-}
-; CHECK: .section .rodata,"a",@progbits
-
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
-
-attributes #0 = { nounwind }
-attributes #1 = { argmemonly nounwind }
diff --git a/test/CodeGen/BPF/rodata_2.ll b/test/CodeGen/BPF/rodata_2.ll
deleted file mode 100644
index 74b3c3640c3f..000000000000
--- a/test/CodeGen/BPF/rodata_2.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llc < %s -march=bpfel -verify-machineinstrs | FileCheck %s
-; RUN: llc < %s -march=bpfeb -verify-machineinstrs | FileCheck %s
-
-; Source code:
-; struct test_t1 {
-; char a;
-; int b;
-; };
-; struct test_t2 {
-; char a, b;
-; struct test_t1 c[2];
-; int d[2];
-; int e;
-; };
-; struct test_t2 g;
-; int test()
-; {
-; struct test_t2 t2 = {.c = {{}, {.b = 1}}, .d = {2, 3}};
-; g = t2;
-; return 0;
-; }
-
-%struct.test_t2 = type { i8, i8, [2 x %struct.test_t1], [2 x i32], i32 }
-%struct.test_t1 = type { i8, i32 }
-
-@test.t2 = private unnamed_addr constant %struct.test_t2 { i8 0, i8 0, [2 x %struct.test_t1] [%struct.test_t1 zeroinitializer, %struct.test_t1 { i8 0, i32 1 }], [2 x i32] [i32 2, i32 3], i32 0 }, align 4
-@g = common local_unnamed_addr global %struct.test_t2 zeroinitializer, align 4
-
-; Function Attrs: nounwind
-define i32 @test() local_unnamed_addr #0 {
-; CHECK-LABEL: test:
-
-entry:
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds (%struct.test_t2, %struct.test_t2* @g, i64 0, i32 0), i8* getelementptr inbounds (%struct.test_t2, %struct.test_t2* @test.t2, i64 0, i32 0), i64 32, i32 4, i1 false)
-; CHECK: r1 = <MCOperand Expr:(g)>ll
-; CHECK: r2 = 0
-; CHECK: *(u32 *)(r1 + 28) = r2
-; CHECK: r3 = 3
-; CHECK: *(u32 *)(r1 + 24) = r3
-; CHECK: r3 = 2
-; CHECK: *(u32 *)(r1 + 20) = r3
-; CHECK: r3 = 1
-; CHECK: *(u32 *)(r1 + 16) = r3
- ret i32 0
-}
-; CHECK: .section .rodata.cst32,"aM",@progbits,32
-
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
-
-attributes #0 = { nounwind }
-attributes #1 = { argmemonly nounwind }
diff --git a/test/CodeGen/BPF/rodata_3.ll b/test/CodeGen/BPF/rodata_3.ll
deleted file mode 100644
index 814ce7645465..000000000000
--- a/test/CodeGen/BPF/rodata_3.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; REQUIRES: x86_64-linux
-; RUN: llc < %s -march=bpfel -verify-machineinstrs | FileCheck --check-prefix=CHECK-EL %s
-; RUN: llc < %s -march=bpfeb -verify-machineinstrs | FileCheck --check-prefix=CHECK-EB %s
-;
-; This test requires little-endian host, so we specific x86_64-linux here.
-; Source code:
-; struct test_t1 {
-; char a;
-; int b, c, d;
-; };
-;
-; struct test_t1 g;
-; int test()
-; {
-; struct test_t1 t1 = {.a = 1};
-; g = t1;
-; return 0;
-; }
-
-%struct.test_t1 = type { i8, i32, i32, i32 }
-
-@test.t1 = private unnamed_addr constant %struct.test_t1 { i8 1, i32 0, i32 0, i32 0 }, align 4
-@g = common local_unnamed_addr global %struct.test_t1 zeroinitializer, align 4
-
-; Function Attrs: nounwind
-define i32 @test() local_unnamed_addr #0 {
-entry:
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds (%struct.test_t1, %struct.test_t1* @g, i64 0, i32 0), i8* getelementptr inbounds (%struct.test_t1, %struct.test_t1* @test.t1, i64 0, i32 0), i64 16, i32 4, i1 false)
-; CHECK-EL: r2 = 1
-; CHECK-EL: *(u32 *)(r1 + 0) = r2
-; CHECK-EB: r2 = 16777216
-; CHECK-EB: *(u32 *)(r1 + 0) = r2
- ret i32 0
-}
-; CHECK-EL: .section .rodata.cst16,"aM",@progbits,16
-; CHECK-EB: .section .rodata.cst16,"aM",@progbits,16
-
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
-
-attributes #0 = { nounwind }
-attributes #1 = { argmemonly nounwind }
diff --git a/test/CodeGen/BPF/rodata_4.ll b/test/CodeGen/BPF/rodata_4.ll
deleted file mode 100644
index d6b9fba5be0a..000000000000
--- a/test/CodeGen/BPF/rodata_4.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llc < %s -march=bpfel -verify-machineinstrs | FileCheck %s
-; RUN: llc < %s -march=bpfeb -verify-machineinstrs | FileCheck %s
-
-; Source code:
-; struct test_t1
-; {
-; short a;
-; short b;
-; char c;
-; };
-;
-; struct test_t1 g;
-; int test()
-; {
-; struct test_t1 t1[] = {{50, 500, 5}, {60, 600, 6}, {70, 700, 7}, {80, 800, 8} };
-;
-; g = t1[1];
-; return 0;
-; }
-
-%struct.test_t1 = type { i16, i16, i8 }
-
-@test.t1 = private unnamed_addr constant [4 x %struct.test_t1] [%struct.test_t1 { i16 50, i16 500, i8 5 }, %struct.test_t1 { i16 60, i16 600, i8 6 }, %struct.test_t1 { i16 70, i16 700, i8 7 }, %struct.test_t1 { i16 80, i16 800, i8 8 }], align 2
-@g = common local_unnamed_addr global %struct.test_t1 zeroinitializer, align 2
-
-; Function Attrs: nounwind
-define i32 @test() local_unnamed_addr #0 {
-; CHECK-LABEL: test:
-entry:
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.test_t1* @g to i8*), i8* bitcast (%struct.test_t1* getelementptr inbounds ([4 x %struct.test_t1], [4 x %struct.test_t1]* @test.t1, i64 0, i64 1) to i8*), i64 6, i32 2, i1 false)
-; CHECK: r2 = 600
-; CHECK: *(u16 *)(r1 + 2) = r2
-; CHECK: r2 = 60
-; CHECK: *(u16 *)(r1 + 0) = r2
- ret i32 0
-}
-; CHECK .section .rodata,"a",@progbits
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
-
-attributes #0 = { nounwind }
-attributes #1 = { argmemonly nounwind }
diff --git a/test/CodeGen/BPF/sanity.ll b/test/CodeGen/BPF/sanity.ll
deleted file mode 100644
index a7aed65b821e..000000000000
--- a/test/CodeGen/BPF/sanity.ll
+++ /dev/null
@@ -1,117 +0,0 @@
-; RUN: not llc < %s -march=bpfel | FileCheck %s
-
-@foo_printf.fmt = private unnamed_addr constant [9 x i8] c"hello \0A\00", align 1
-
-; Function Attrs: nounwind readnone uwtable
-define i32 @foo_int(i32 %a, i32 %b) #0 {
- %1 = add nsw i32 %b, %a
- ret i32 %1
-; CHECK-LABEL: foo_int:
-; CHECK: r2 += r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_char(i8 signext %a, i8 signext %b) #0 {
- %1 = add i8 %b, %a
- ret i8 %1
-; CHECK-LABEL: foo_char:
-; CHECK: r2 += r1
-; CHECK: r2 <<= 56
-; CHECK: r2 s>>= 56
-}
-
-; Function Attrs: nounwind readnone uwtable
-define i64 @foo_ll(i64 %a, i64 %b, i64 %c) #0 {
- %1 = add nsw i64 %b, %a
- %2 = sub i64 %1, %c
- ret i64 %2
-; CHECK-LABEL: foo_ll:
-; CHECK: r2 += r1
-; CHECK: r2 -= r3
-; CHECK: r0 = r2
-}
-
-; Function Attrs: nounwind uwtable
-define void @foo_call2(i32 %a, i32 %b) #1 {
- %1 = trunc i32 %b to i8
- tail call void @foo_2arg(i8 signext %1, i32 %a) #3
- ret void
-; CHECK-LABEL: foo_call2:
-; CHECK: r2 <<= 56
-; CHECK: r2 s>>= 56
-; CHECK: r1 = r2
-}
-
-declare void @foo_2arg(i8 signext, i32) #2
-
-; Function Attrs: nounwind uwtable
-define i32 @foo_call5(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #1 {
- %1 = tail call i32 @bar(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #3
- ret i32 0
-; CHECK-LABEL: foo_call5:
-; CHECK: call bar
-}
-
-declare i32 @bar(i8 signext, i16 signext, i32, i64) #2
-
-; Function Attrs: nounwind readnone uwtable
-define signext i8 @foo_cmp(i8 signext %a, i8 signext %b) #0 {
- %1 = icmp slt i8 %a, %b
- %a.b = select i1 %1, i8 %a, i8 %b
- ret i8 %a.b
-; CHECK-LABEL: foo_cmp:
-; CHECK: if r2 s> r1
-}
-
-; Function Attrs: nounwind readnone uwtable
-define i32 @foo_muldiv(i8 signext %a, i16 signext %b, i32 %c, i64 %d) #0 {
- %1 = icmp eq i8 %a, 0
- br i1 %1, label %5, label %2
-
-; <label>:2 ; preds = %0
- %3 = sext i16 %b to i32
- %4 = mul nsw i32 %3, %c
- br label %8
-
-; <label>:5 ; preds = %0
- %6 = trunc i64 %d to i32
- %7 = udiv i32 %6, %c
- br label %8
-
-; <label>:8 ; preds = %5, %2
- %.0 = phi i32 [ %4, %2 ], [ %7, %5 ]
- ret i32 %.0
-; CHECK-LABEL: foo_muldiv:
-; CHECK: r2 *= r3
-}
-
-; Function Attrs: nounwind uwtable
-define i32 @foo_optimized() #1 {
- %1 = tail call i32 @manyarg(i32 1, i32 2, i32 3, i32 4, i32 5) #3
- ret i32 %1
-; CHECK-LABEL: foo_optimized:
-; CHECK: r1 = 1
-; CHECK: r2 = 2
-; CHECK: r3 = 3
-; CHECK: r4 = 4
-; CHECK: r5 = 5
-}
-
-declare i32 @manyarg(i32, i32, i32, i32, i32) #2
-
-; Function Attrs: nounwind uwtable
-define void @foo_printf() #1 {
- %fmt = alloca [9 x i8], align 1
- %1 = getelementptr inbounds [9 x i8], [9 x i8]* %fmt, i64 0, i64 0
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @foo_printf.fmt, i64 0, i64 0), i64 9, i32 1, i1 false)
-; CHECK-LABEL: foo_printf:
-; CHECK: r1 = 729618802566522216ll
- %2 = call i32 (i8*, ...) @printf(i8* %1) #3
- ret void
-}
-
-; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #3
-
-; Function Attrs: nounwind
-declare i32 @printf(i8* nocapture, ...) #4
diff --git a/test/CodeGen/BPF/sdiv_error.ll b/test/CodeGen/BPF/sdiv_error.ll
deleted file mode 100644
index 053b82dd98fa..000000000000
--- a/test/CodeGen/BPF/sdiv_error.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: Unsupport signed division
-
-; Function Attrs: norecurse nounwind readnone
-define i32 @test(i32 %len) #0 {
- %1 = srem i32 %len, 15
- ret i32 %1
-}
diff --git a/test/CodeGen/BPF/setcc.ll b/test/CodeGen/BPF/setcc.ll
deleted file mode 100644
index 294c49365670..000000000000
--- a/test/CodeGen/BPF/setcc.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; RUN: llc -march=bpfel < %s | FileCheck %s
-
-define i16 @sccweqand(i16 %a, i16 %b) nounwind {
- %t1 = and i16 %a, %b
- %t2 = icmp eq i16 %t1, 0
- %t3 = zext i1 %t2 to i16
- ret i16 %t3
-}
-; CHECK-LABEL: sccweqand:
-; CHECK: if r1 == r2
-
-define i16 @sccwneand(i16 %a, i16 %b) nounwind {
- %t1 = and i16 %a, %b
- %t2 = icmp ne i16 %t1, 0
- %t3 = zext i1 %t2 to i16
- ret i16 %t3
-}
-; CHECK-LABEL: sccwneand:
-; CHECK: if r1 != r2
-
-define i16 @sccwne(i16 %a, i16 %b) nounwind {
- %t1 = icmp ne i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwne:
-; CHECK: if r1 != r2
-
-define i16 @sccweq(i16 %a, i16 %b) nounwind {
- %t1 = icmp eq i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccweq:
-; CHECK: if r1 == r2
-
-define i16 @sccwugt(i16 %a, i16 %b) nounwind {
- %t1 = icmp ugt i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwugt:
-; CHECK: if r1 > r2
-
-define i16 @sccwuge(i16 %a, i16 %b) nounwind {
- %t1 = icmp uge i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwuge:
-; CHECK: if r1 >= r2
-
-define i16 @sccwult(i16 %a, i16 %b) nounwind {
- %t1 = icmp ult i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwult:
-; CHECK: if r2 > r1
-
-define i16 @sccwule(i16 %a, i16 %b) nounwind {
- %t1 = icmp ule i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwule:
-; CHECK: if r2 >= r1
-
-define i16 @sccwsgt(i16 %a, i16 %b) nounwind {
- %t1 = icmp sgt i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwsgt:
-; CHECK: if r1 s> r2
-
-define i16 @sccwsge(i16 %a, i16 %b) nounwind {
- %t1 = icmp sge i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwsge:
-; CHECK: if r1 s>= r2
-
-define i16 @sccwslt(i16 %a, i16 %b) nounwind {
- %t1 = icmp slt i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwslt:
-; CHECK: if r2 s> r1
-
-define i16 @sccwsle(i16 %a, i16 %b) nounwind {
- %t1 = icmp sle i16 %a, %b
- %t2 = zext i1 %t1 to i16
- ret i16 %t2
-}
-; CHECK-LABEL:sccwsle:
-; CHECK: if r2 s>= r1
diff --git a/test/CodeGen/BPF/shifts.ll b/test/CodeGen/BPF/shifts.ll
deleted file mode 100644
index 15e228c492db..000000000000
--- a/test/CodeGen/BPF/shifts.ll
+++ /dev/null
@@ -1,100 +0,0 @@
-; RUN: llc < %s -march=bpfel -show-mc-encoding | FileCheck %s
-
-define zeroext i8 @lshr8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: lshr8:
-; CHECK: r1 >>= r2 # encoding: [0x7f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = lshr i8 %a, %cnt
- ret i8 %shr
-}
-
-define signext i8 @ashr8(i8 signext %a, i8 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: ashr8:
-; CHECK: r1 s>>= r2 # encoding: [0xcf,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = ashr i8 %a, %cnt
- ret i8 %shr
-}
-
-define zeroext i8 @shl8(i8 zeroext %a, i8 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK: shl8
-; CHECK: r1 <<= r2 # encoding: [0x6f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shl = shl i8 %a, %cnt
- ret i8 %shl
-}
-
-define zeroext i16 @lshr16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: lshr16:
-; CHECK: r1 >>= r2 # encoding: [0x7f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = lshr i16 %a, %cnt
- ret i16 %shr
-}
-
-define signext i16 @ashr16(i16 signext %a, i16 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: ashr16:
-; CHECK: r1 s>>= r2 # encoding: [0xcf,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = ashr i16 %a, %cnt
- ret i16 %shr
-}
-
-define zeroext i16 @shl16(i16 zeroext %a, i16 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: shl16:
-; CHECK: r1 <<= r2 # encoding: [0x6f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shl = shl i16 %a, %cnt
- ret i16 %shl
-}
-
-define zeroext i32 @lshr32(i32 zeroext %a, i32 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: lshr32:
-; CHECK: r1 >>= r2 # encoding: [0x7f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: r1 <<= 32 # encoding: [0x67,0x01,0x00,0x00,0x20,0x00,0x00,0x00]
- %shr = lshr i32 %a, %cnt
- ret i32 %shr
-}
-
-define signext i32 @ashr32(i32 signext %a, i32 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: ashr32:
-; CHECK: r1 s>>= r2 # encoding: [0xcf,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = ashr i32 %a, %cnt
- ret i32 %shr
-}
-
-define zeroext i32 @shl32(i32 zeroext %a, i32 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: shl32:
-; CHECK: r1 <<= r2 # encoding: [0x6f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shl = shl i32 %a, %cnt
- ret i32 %shl
-}
-
-define zeroext i64 @lshr64(i64 zeroext %a, i64 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: lshr64:
-; CHECK: r1 >>= r2 # encoding: [0x7f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = lshr i64 %a, %cnt
- ret i64 %shr
-}
-
-define signext i64 @ashr64(i64 signext %a, i64 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: ashr64:
-; CHECK: r1 s>>= r2 # encoding: [0xcf,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
- %shr = ashr i64 %a, %cnt
- ret i64 %shr
-}
-
-define zeroext i64 @shl64(i64 zeroext %a, i64 zeroext %cnt) nounwind readnone {
-entry:
-; CHECK-LABEL: shl64:
-; CHECK: r1 <<= r2 # encoding: [0x6f,0x21,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: r0 = r1 # encoding: [0xbf,0x10,0x00,0x00,0x00,0x00,0x00,0x00]
-; CHECK: exit # encoding: [0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
- %shl = shl i64 %a, %cnt
- ret i64 %shl
-}
diff --git a/test/CodeGen/BPF/sockex2.ll b/test/CodeGen/BPF/sockex2.ll
deleted file mode 100644
index d5f070ea605c..000000000000
--- a/test/CodeGen/BPF/sockex2.ll
+++ /dev/null
@@ -1,324 +0,0 @@
-; RUN: llc < %s -march=bpfel -show-mc-encoding | FileCheck %s
-
-%struct.bpf_map_def = type { i32, i32, i32, i32 }
-%struct.sk_buff = type opaque
-
-@hash_map = global %struct.bpf_map_def { i32 1, i32 4, i32 8, i32 1024 }, section "maps", align 4
-
-; Function Attrs: nounwind uwtable
-define i32 @bpf_prog2(%struct.sk_buff* %skb) #0 section "socket2" {
- %key = alloca i32, align 4
- %val = alloca i64, align 8
- %1 = bitcast %struct.sk_buff* %skb to i8*
- %2 = call i64 @llvm.bpf.load.half(i8* %1, i64 12) #2
- %3 = icmp eq i64 %2, 34984
- br i1 %3, label %4, label %6
-
-; <label>:4 ; preds = %0
- %5 = call i64 @llvm.bpf.load.half(i8* %1, i64 16) #2
- br label %6
-
-; <label>:6 ; preds = %4, %0
- %proto.0.i = phi i64 [ %5, %4 ], [ %2, %0 ]
- %nhoff.0.i = phi i64 [ 18, %4 ], [ 14, %0 ]
- %7 = icmp eq i64 %proto.0.i, 33024
- br i1 %7, label %8, label %12
-
-; <label>:8 ; preds = %6
- %9 = add i64 %nhoff.0.i, 2
- %10 = call i64 @llvm.bpf.load.half(i8* %1, i64 %9) #2
- %11 = add i64 %nhoff.0.i, 4
- br label %12
-
-; <label>:12 ; preds = %8, %6
- %proto.1.i = phi i64 [ %10, %8 ], [ %proto.0.i, %6 ]
- %nhoff.1.i = phi i64 [ %11, %8 ], [ %nhoff.0.i, %6 ]
- switch i64 %proto.1.i, label %flow_dissector.exit.thread [
- i64 2048, label %13
- i64 34525, label %39
- ]
-
-; <label>:13 ; preds = %12
- %14 = add i64 %nhoff.1.i, 6
- %15 = call i64 @llvm.bpf.load.half(i8* %1, i64 %14) #2
- %16 = and i64 %15, 16383
- %17 = icmp eq i64 %16, 0
- br i1 %17, label %18, label %.thread.i.i
-
-; <label>:18 ; preds = %13
- %19 = add i64 %nhoff.1.i, 9
- %20 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %19) #2
- %21 = icmp eq i64 %20, 47
- br i1 %21, label %28, label %.thread.i.i
-
-.thread.i.i: ; preds = %18, %13
- %22 = phi i64 [ %20, %18 ], [ 0, %13 ]
- %23 = add i64 %nhoff.1.i, 12
- %24 = call i64 @llvm.bpf.load.word(i8* %1, i64 %23) #2
- %25 = add i64 %nhoff.1.i, 16
- %26 = call i64 @llvm.bpf.load.word(i8* %1, i64 %25) #2
- %27 = trunc i64 %26 to i32
- br label %28
-
-; <label>:28 ; preds = %.thread.i.i, %18
- %29 = phi i32 [ %27, %.thread.i.i ], [ undef, %18 ]
- %30 = phi i64 [ %22, %.thread.i.i ], [ 47, %18 ]
- %31 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.1.i) #2
- %32 = icmp eq i64 %31, 69
- br i1 %32, label %33, label %35
-
-; <label>:33 ; preds = %28
- %34 = add i64 %nhoff.1.i, 20
- br label %parse_ip.exit.i
-
-; <label>:35 ; preds = %28
- %36 = shl i64 %31, 2
- %37 = and i64 %36, 60
- %38 = add i64 %37, %nhoff.1.i
- br label %parse_ip.exit.i
-
-; <label>:39 ; preds = %12
- %40 = add i64 %nhoff.1.i, 6
- %41 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %40) #2
- %42 = add i64 %nhoff.1.i, 8
- %43 = call i64 @llvm.bpf.load.word(i8* %1, i64 %42) #2
- %44 = add i64 %nhoff.1.i, 12
- %45 = call i64 @llvm.bpf.load.word(i8* %1, i64 %44) #2
- %46 = add i64 %nhoff.1.i, 16
- %47 = call i64 @llvm.bpf.load.word(i8* %1, i64 %46) #2
- %48 = add i64 %nhoff.1.i, 20
- %49 = call i64 @llvm.bpf.load.word(i8* %1, i64 %48) #2
- %50 = add i64 %nhoff.1.i, 24
- %51 = call i64 @llvm.bpf.load.word(i8* %1, i64 %50) #2
- %52 = add i64 %nhoff.1.i, 28
- %53 = call i64 @llvm.bpf.load.word(i8* %1, i64 %52) #2
- %54 = add i64 %nhoff.1.i, 32
- %55 = call i64 @llvm.bpf.load.word(i8* %1, i64 %54) #2
- %56 = add i64 %nhoff.1.i, 36
- %57 = call i64 @llvm.bpf.load.word(i8* %1, i64 %56) #2
- %58 = xor i64 %53, %51
- %59 = xor i64 %58, %55
- %60 = xor i64 %59, %57
- %61 = trunc i64 %60 to i32
- %62 = add i64 %nhoff.1.i, 40
- br label %parse_ip.exit.i
-
-parse_ip.exit.i: ; preds = %39, %35, %33
- %63 = phi i32 [ %61, %39 ], [ %29, %33 ], [ %29, %35 ]
- %64 = phi i64 [ %41, %39 ], [ %30, %33 ], [ %30, %35 ]
- %nhoff.2.i = phi i64 [ %62, %39 ], [ %34, %33 ], [ %38, %35 ]
- switch i64 %64, label %187 [
- i64 47, label %65
- i64 4, label %137
- i64 41, label %163
- ]
-
-; <label>:65 ; preds = %parse_ip.exit.i
- %66 = call i64 @llvm.bpf.load.half(i8* %1, i64 %nhoff.2.i) #2
- %67 = add i64 %nhoff.2.i, 2
- %68 = call i64 @llvm.bpf.load.half(i8* %1, i64 %67) #2
- %69 = and i64 %66, 1856
- %70 = icmp eq i64 %69, 0
- br i1 %70, label %71, label %187
-
-; <label>:71 ; preds = %65
- %72 = lshr i64 %66, 5
- %73 = and i64 %72, 4
- %74 = add i64 %nhoff.2.i, 4
- %..i = add i64 %74, %73
- %75 = and i64 %66, 32
- %76 = icmp eq i64 %75, 0
- %77 = add i64 %..i, 4
- %nhoff.4.i = select i1 %76, i64 %..i, i64 %77
- %78 = and i64 %66, 16
- %79 = icmp eq i64 %78, 0
- %80 = add i64 %nhoff.4.i, 4
- %nhoff.4..i = select i1 %79, i64 %nhoff.4.i, i64 %80
- %81 = icmp eq i64 %68, 33024
- br i1 %81, label %82, label %86
-
-; <label>:82 ; preds = %71
- %83 = add i64 %nhoff.4..i, 2
- %84 = call i64 @llvm.bpf.load.half(i8* %1, i64 %83) #2
- %85 = add i64 %nhoff.4..i, 4
- br label %86
-
-; <label>:86 ; preds = %82, %71
- %proto.2.i = phi i64 [ %84, %82 ], [ %68, %71 ]
- %nhoff.6.i = phi i64 [ %85, %82 ], [ %nhoff.4..i, %71 ]
- switch i64 %proto.2.i, label %flow_dissector.exit.thread [
- i64 2048, label %87
- i64 34525, label %113
- ]
-
-; <label>:87 ; preds = %86
- %88 = add i64 %nhoff.6.i, 6
- %89 = call i64 @llvm.bpf.load.half(i8* %1, i64 %88) #2
- %90 = and i64 %89, 16383
- %91 = icmp eq i64 %90, 0
- br i1 %91, label %92, label %.thread.i4.i
-
-; <label>:92 ; preds = %87
- %93 = add i64 %nhoff.6.i, 9
- %94 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %93) #2
- %95 = icmp eq i64 %94, 47
- br i1 %95, label %102, label %.thread.i4.i
-
-.thread.i4.i: ; preds = %92, %87
- %96 = phi i64 [ %94, %92 ], [ 0, %87 ]
- %97 = add i64 %nhoff.6.i, 12
- %98 = call i64 @llvm.bpf.load.word(i8* %1, i64 %97) #2
- %99 = add i64 %nhoff.6.i, 16
- %100 = call i64 @llvm.bpf.load.word(i8* %1, i64 %99) #2
- %101 = trunc i64 %100 to i32
- br label %102
-
-; <label>:102 ; preds = %.thread.i4.i, %92
- %103 = phi i32 [ %101, %.thread.i4.i ], [ %63, %92 ]
- %104 = phi i64 [ %96, %.thread.i4.i ], [ 47, %92 ]
- %105 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.6.i) #2
- %106 = icmp eq i64 %105, 69
- br i1 %106, label %107, label %109
-
-; <label>:107 ; preds = %102
- %108 = add i64 %nhoff.6.i, 20
- br label %187
-
-; <label>:109 ; preds = %102
- %110 = shl i64 %105, 2
- %111 = and i64 %110, 60
- %112 = add i64 %111, %nhoff.6.i
- br label %187
-
-; <label>:113 ; preds = %86
- %114 = add i64 %nhoff.6.i, 6
- %115 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %114) #2
- %116 = add i64 %nhoff.6.i, 8
- %117 = call i64 @llvm.bpf.load.word(i8* %1, i64 %116) #2
- %118 = add i64 %nhoff.6.i, 12
- %119 = call i64 @llvm.bpf.load.word(i8* %1, i64 %118) #2
- %120 = add i64 %nhoff.6.i, 16
- %121 = call i64 @llvm.bpf.load.word(i8* %1, i64 %120) #2
- %122 = add i64 %nhoff.6.i, 20
- %123 = call i64 @llvm.bpf.load.word(i8* %1, i64 %122) #2
- %124 = add i64 %nhoff.6.i, 24
- %125 = call i64 @llvm.bpf.load.word(i8* %1, i64 %124) #2
- %126 = add i64 %nhoff.6.i, 28
- %127 = call i64 @llvm.bpf.load.word(i8* %1, i64 %126) #2
- %128 = add i64 %nhoff.6.i, 32
- %129 = call i64 @llvm.bpf.load.word(i8* %1, i64 %128) #2
- %130 = add i64 %nhoff.6.i, 36
- %131 = call i64 @llvm.bpf.load.word(i8* %1, i64 %130) #2
- %132 = xor i64 %127, %125
- %133 = xor i64 %132, %129
- %134 = xor i64 %133, %131
- %135 = trunc i64 %134 to i32
- %136 = add i64 %nhoff.6.i, 40
- br label %187
-
-; <label>:137 ; preds = %parse_ip.exit.i
- %138 = add i64 %nhoff.2.i, 6
- %139 = call i64 @llvm.bpf.load.half(i8* %1, i64 %138) #2
- %140 = and i64 %139, 16383
- %141 = icmp eq i64 %140, 0
- br i1 %141, label %142, label %.thread.i1.i
-
-; <label>:142 ; preds = %137
- %143 = add i64 %nhoff.2.i, 9
- %144 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %143) #2
- %145 = icmp eq i64 %144, 47
- br i1 %145, label %152, label %.thread.i1.i
-
-.thread.i1.i: ; preds = %142, %137
- %146 = phi i64 [ %144, %142 ], [ 0, %137 ]
- %147 = add i64 %nhoff.2.i, 12
- %148 = call i64 @llvm.bpf.load.word(i8* %1, i64 %147) #2
- %149 = add i64 %nhoff.2.i, 16
- %150 = call i64 @llvm.bpf.load.word(i8* %1, i64 %149) #2
- %151 = trunc i64 %150 to i32
- br label %152
-
-; <label>:152 ; preds = %.thread.i1.i, %142
- %153 = phi i32 [ %151, %.thread.i1.i ], [ %63, %142 ]
- %154 = phi i64 [ %146, %.thread.i1.i ], [ 47, %142 ]
- %155 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.2.i) #2
- %156 = icmp eq i64 %155, 69
- br i1 %156, label %157, label %159
-
-; <label>:157 ; preds = %152
- %158 = add i64 %nhoff.2.i, 20
- br label %187
-
-; <label>:159 ; preds = %152
- %160 = shl i64 %155, 2
- %161 = and i64 %160, 60
- %162 = add i64 %161, %nhoff.2.i
- br label %187
-
-; <label>:163 ; preds = %parse_ip.exit.i
- %164 = add i64 %nhoff.2.i, 6
- %165 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %164) #2
- %166 = add i64 %nhoff.2.i, 8
- %167 = call i64 @llvm.bpf.load.word(i8* %1, i64 %166) #2
- %168 = add i64 %nhoff.2.i, 12
- %169 = call i64 @llvm.bpf.load.word(i8* %1, i64 %168) #2
- %170 = add i64 %nhoff.2.i, 16
- %171 = call i64 @llvm.bpf.load.word(i8* %1, i64 %170) #2
- %172 = add i64 %nhoff.2.i, 20
- %173 = call i64 @llvm.bpf.load.word(i8* %1, i64 %172) #2
- %174 = add i64 %nhoff.2.i, 24
- %175 = call i64 @llvm.bpf.load.word(i8* %1, i64 %174) #2
- %176 = add i64 %nhoff.2.i, 28
- %177 = call i64 @llvm.bpf.load.word(i8* %1, i64 %176) #2
- %178 = add i64 %nhoff.2.i, 32
- %179 = call i64 @llvm.bpf.load.word(i8* %1, i64 %178) #2
- %180 = add i64 %nhoff.2.i, 36
- %181 = call i64 @llvm.bpf.load.word(i8* %1, i64 %180) #2
- %182 = xor i64 %177, %175
- %183 = xor i64 %182, %179
- %184 = xor i64 %183, %181
- %185 = trunc i64 %184 to i32
- %186 = add i64 %nhoff.2.i, 40
- br label %187
-
-; <label>:187 ; preds = %163, %159, %157, %113, %109, %107, %65, %parse_ip.exit.i
- %188 = phi i32 [ %63, %parse_ip.exit.i ], [ %185, %163 ], [ %63, %65 ], [ %135, %113 ], [ %103, %107 ], [ %103, %109 ], [ %153, %157 ], [ %153, %159 ]
- %189 = phi i64 [ %64, %parse_ip.exit.i ], [ %165, %163 ], [ 47, %65 ], [ %115, %113 ], [ %104, %107 ], [ %104, %109 ], [ %154, %157 ], [ %154, %159 ]
- %nhoff.7.i = phi i64 [ %nhoff.2.i, %parse_ip.exit.i ], [ %186, %163 ], [ %nhoff.2.i, %65 ], [ %136, %113 ], [ %108, %107 ], [ %112, %109 ], [ %158, %157 ], [ %162, %159 ]
- %cond.i.i = icmp eq i64 %189, 51
- %190 = select i1 %cond.i.i, i64 4, i64 0
- %191 = add i64 %190, %nhoff.7.i
- %192 = call i64 @llvm.bpf.load.word(i8* %1, i64 %191) #2
- store i32 %188, i32* %key, align 4
- %193 = bitcast i32* %key to i8*
- %194 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.bpf_map_def* @hash_map to i8*), i8* %193) #2
- %195 = icmp eq i8* %194, null
- br i1 %195, label %199, label %196
-
-; <label>:196 ; preds = %187
- %197 = bitcast i8* %194 to i64*
- %198 = atomicrmw add i64* %197, i64 1 seq_cst
- br label %flow_dissector.exit.thread
-
-; <label>:199 ; preds = %187
- store i64 1, i64* %val, align 8
- %200 = bitcast i64* %val to i8*
- %201 = call i32 inttoptr (i64 2 to i32 (i8*, i8*, i8*, i64)*)(i8* bitcast (%struct.bpf_map_def* @hash_map to i8*), i8* %193, i8* %200, i64 0) #2
- br label %flow_dissector.exit.thread
-
-flow_dissector.exit.thread: ; preds = %86, %12, %196, %199
- ret i32 0
-; CHECK-LABEL: bpf_prog2:
-; CHECK: r0 = *(u16 *)skb[12] # encoding: [0x28,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]
-; CHECK: r0 = *(u16 *)skb[16] # encoding: [0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00]
-; CHECK: implicit-def: %R1
-; CHECK: r1 =
-; CHECK: call 1 # encoding: [0x85,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
-; CHECK: call 2 # encoding: [0x85,0x00,0x00,0x00,0x02,0x00,0x00,0x00]
-}
-
-declare i64 @llvm.bpf.load.half(i8*, i64) #1
-
-declare i64 @llvm.bpf.load.word(i8*, i64) #1
-
-declare i64 @llvm.bpf.load.byte(i8*, i64) #1
diff --git a/test/CodeGen/BPF/struct_ret1.ll b/test/CodeGen/BPF/struct_ret1.ll
deleted file mode 100644
index 29486b56a272..000000000000
--- a/test/CodeGen/BPF/struct_ret1.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: only integer returns
-
-%struct.S = type { i32, i32, i32 }
-
-@s = common global %struct.S zeroinitializer, align 4
-
-; Function Attrs: nounwind readonly uwtable
-define { i64, i32 } @bar(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) #0 {
-entry:
- %retval.sroa.0.0.copyload = load i64, i64* bitcast (%struct.S* @s to i64*), align 4
- %retval.sroa.2.0.copyload = load i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i64 0, i32 2), align 4
- %.fca.0.insert = insertvalue { i64, i32 } undef, i64 %retval.sroa.0.0.copyload, 0
- %.fca.1.insert = insertvalue { i64, i32 } %.fca.0.insert, i32 %retval.sroa.2.0.copyload, 1
- ret { i64, i32 } %.fca.1.insert
-}
diff --git a/test/CodeGen/BPF/struct_ret2.ll b/test/CodeGen/BPF/struct_ret2.ll
deleted file mode 100644
index 90461205f7cf..000000000000
--- a/test/CodeGen/BPF/struct_ret2.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: only small returns
-
-; Function Attrs: nounwind uwtable
-define { i64, i32 } @foo(i32 %a, i32 %b, i32 %c) #0 {
-entry:
- %call = tail call { i64, i32 } @bar(i32 %a, i32 %b, i32 %c, i32 1, i32 2) #3
- ret { i64, i32 } %call
-}
-
-declare { i64, i32 } @bar(i32, i32, i32, i32, i32) #1
diff --git a/test/CodeGen/BPF/undef.ll b/test/CodeGen/BPF/undef.ll
deleted file mode 100644
index de14bfde1ab9..000000000000
--- a/test/CodeGen/BPF/undef.ll
+++ /dev/null
@@ -1,73 +0,0 @@
-; RUN: not llc < %s -march=bpf | FileCheck %s
-
-%struct.bpf_map_def = type { i32, i32, i32, i32 }
-%struct.__sk_buff = type opaque
-%struct.routing_key_2 = type { [6 x i8] }
-
-@routing = global %struct.bpf_map_def { i32 1, i32 6, i32 12, i32 1024 }, section "maps", align 4
-@routing_miss_0 = global %struct.bpf_map_def { i32 1, i32 1, i32 12, i32 1 }, section "maps", align 4
-@test1 = global %struct.bpf_map_def { i32 2, i32 4, i32 8, i32 1024 }, section "maps", align 4
-@test1_miss_4 = global %struct.bpf_map_def { i32 2, i32 1, i32 8, i32 1 }, section "maps", align 4
-@_license = global [4 x i8] c"GPL\00", section "license", align 1
-@llvm.used = appending global [6 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @_license, i32 0, i32 0), i8* bitcast (i32 (%struct.__sk_buff*)* @ebpf_filter to i8*), i8* bitcast (%struct.bpf_map_def* @routing to i8*), i8* bitcast (%struct.bpf_map_def* @routing_miss_0 to i8*), i8* bitcast (%struct.bpf_map_def* @test1 to i8*), i8* bitcast (%struct.bpf_map_def* @test1_miss_4 to i8*)], section "llvm.metadata"
-
-; Function Attrs: nounwind uwtable
-define i32 @ebpf_filter(%struct.__sk_buff* nocapture readnone %ebpf_packet) #0 section "socket1" {
-; CHECK: r2 = r10
-; CHECK: r2 += -2
-; CHECK: r1 = 0
-; CHECK: *(u16 *)(r2 + 6) = r1
-; CHECK: *(u16 *)(r2 + 4) = r1
-; CHECK: *(u16 *)(r2 + 2) = r1
-; CHECK: r2 = 6
-; CHECK: *(u8 *)(r10 - 7) = r2
-; CHECK: r2 = 5
-; CHECK: *(u8 *)(r10 - 8) = r2
-; CHECK: r2 = 7
-; CHECK: *(u8 *)(r10 - 6) = r2
-; CHECK: r2 = 8
-; CHECK: *(u8 *)(r10 - 5) = r2
-; CHECK: r2 = 9
-; CHECK: *(u8 *)(r10 - 4) = r2
-; CHECK: r2 = 10
-; CHECK: *(u8 *)(r10 - 3) = r2
-; CHECK: *(u16 *)(r10 + 24) = r1
-; CHECK: *(u16 *)(r10 + 22) = r1
-; CHECK: *(u16 *)(r10 + 20) = r1
-; CHECK: *(u16 *)(r10 + 18) = r1
-; CHECK: *(u16 *)(r10 + 16) = r1
-; CHECK: *(u16 *)(r10 + 14) = r1
-; CHECK: *(u16 *)(r10 + 12) = r1
-; CHECK: *(u16 *)(r10 + 10) = r1
-; CHECK: *(u16 *)(r10 + 8) = r1
-; CHECK: *(u16 *)(r10 + 6) = r1
-; CHECK: *(u16 *)(r10 - 2) = r1
-; CHECK: *(u16 *)(r10 + 26) = r1
-; CHECK: r2 = r10
-; CHECK: r2 += -8
-; CHECK: r1 = <MCOperand Expr:(routing)>ll
-; CHECK: call bpf_map_lookup_elem
-; CHECK: exit
- %key = alloca %struct.routing_key_2, align 1
- %1 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 0
- store i8 5, i8* %1, align 1
- %2 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 1
- store i8 6, i8* %2, align 1
- %3 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 2
- store i8 7, i8* %3, align 1
- %4 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 3
- store i8 8, i8* %4, align 1
- %5 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 4
- store i8 9, i8* %5, align 1
- %6 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 0, i32 0, i64 5
- store i8 10, i8* %6, align 1
- %7 = getelementptr inbounds %struct.routing_key_2, %struct.routing_key_2* %key, i64 1, i32 0, i64 0
- call void @llvm.memset.p0i8.i64(i8* %7, i8 0, i64 30, i32 1, i1 false)
- %8 = call i32 (%struct.bpf_map_def*, %struct.routing_key_2*, ...) bitcast (i32 (...)* @bpf_map_lookup_elem to i32 (%struct.bpf_map_def*, %struct.routing_key_2*, ...)*)(%struct.bpf_map_def* nonnull @routing, %struct.routing_key_2* nonnull %key) #3
- ret i32 undef
-}
-
-; Function Attrs: nounwind argmemonly
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1
-
-declare i32 @bpf_map_lookup_elem(...) #2
diff --git a/test/CodeGen/BPF/vararg1.ll b/test/CodeGen/BPF/vararg1.ll
deleted file mode 100644
index 4a22db65e692..000000000000
--- a/test/CodeGen/BPF/vararg1.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: not llc -march=bpf < %s 2> %t1
-; RUN: FileCheck %s < %t1
-; CHECK: with VarArgs
-
-; Function Attrs: nounwind readnone uwtable
-define void @foo(i32 %a, ...) #0 {
-entry:
- ret void
-}
diff --git a/test/CodeGen/BPF/warn-call.ll b/test/CodeGen/BPF/warn-call.ll
deleted file mode 100644
index ae7f78ac1aa8..000000000000
--- a/test/CodeGen/BPF/warn-call.ll
+++ /dev/null
@@ -1,69 +0,0 @@
-; RUN: not llc -march=bpfel < %s 2>&1 >/dev/null | FileCheck %s
-
-; CHECK: error: warn_call.c
-; CHECK: built-in function 'memcpy'
-; CHECK: error: warn_call.c
-; CHECK: global function 'foo'
-; CHECK: global function 'bar'
-define i8* @warn(i8* returned, i8*, i64) local_unnamed_addr #0 !dbg !6 {
- tail call void @llvm.dbg.value(metadata i8* %0, i64 0, metadata !14, metadata !17), !dbg !18
- tail call void @llvm.dbg.value(metadata i8* %1, i64 0, metadata !15, metadata !17), !dbg !19
- tail call void @llvm.dbg.value(metadata i64 %2, i64 0, metadata !16, metadata !17), !dbg !20
- tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 %2, i32 1, i1 false), !dbg !21
- %4 = tail call i8* @foo(i8* %0, i8* %1, i64 %2) #5, !dbg !22
- %5 = tail call fastcc i8* @bar(i8* %0), !dbg !23
- ret i8* %5, !dbg !24
-}
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
-
-declare i8* @foo(i8*, i8*, i64) local_unnamed_addr #2
-
-; Function Attrs: noinline nounwind readnone
-define internal fastcc i8* @bar(i8* readnone returned) unnamed_addr #3 !dbg !25 {
- tail call void @llvm.dbg.value(metadata i8* null, i64 0, metadata !28, metadata !17), !dbg !30
- tail call void @llvm.dbg.value(metadata i64 0, i64 0, metadata !29, metadata !17), !dbg !31
- ret i8* %0, !dbg !32
-}
-
-; Function Attrs: nounwind readnone
-declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #4
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!3, !4}
-!llvm.ident = !{!5}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 5.0.0 (trunk 292174) (llvm/trunk 292179)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
-!1 = !DIFile(filename: "warn_call.c", directory: "/w/llvm/bld")
-!2 = !{}
-!3 = !{i32 2, !"Dwarf Version", i32 4}
-!4 = !{i32 2, !"Debug Info Version", i32 3}
-!5 = !{!"clang version 5.0.0 (trunk 292174) (llvm/trunk 292179)"}
-!6 = distinct !DISubprogram(name: "warn", scope: !1, file: !1, line: 4, type: !7, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !13)
-!7 = !DISubroutineType(types: !8)
-!8 = !{!9, !9, !10, !12}
-!9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
-!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64)
-!11 = !DIDerivedType(tag: DW_TAG_const_type, baseType: null)
-!12 = !DIBasicType(name: "long unsigned int", size: 64, encoding: DW_ATE_unsigned)
-!13 = !{!14, !15, !16}
-!14 = !DILocalVariable(name: "dst", arg: 1, scope: !6, file: !1, line: 4, type: !9)
-!15 = !DILocalVariable(name: "src", arg: 2, scope: !6, file: !1, line: 4, type: !10)
-!16 = !DILocalVariable(name: "len", arg: 3, scope: !6, file: !1, line: 4, type: !12)
-!17 = !DIExpression()
-!18 = !DILocation(line: 4, column: 18, scope: !6)
-!19 = !DILocation(line: 4, column: 35, scope: !6)
-!20 = !DILocation(line: 4, column: 54, scope: !6)
-!21 = !DILocation(line: 6, column: 2, scope: !6)
-!22 = !DILocation(line: 7, column: 2, scope: !6)
-!23 = !DILocation(line: 8, column: 9, scope: !6)
-!24 = !DILocation(line: 8, column: 2, scope: !6)
-!25 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 2, type: !7, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !26)
-!26 = !{!27, !28, !29}
-!27 = !DILocalVariable(name: "dst", arg: 1, scope: !25, file: !1, line: 2, type: !9)
-!28 = !DILocalVariable(name: "src", arg: 2, scope: !25, file: !1, line: 2, type: !10)
-!29 = !DILocalVariable(name: "len", arg: 3, scope: !25, file: !1, line: 2, type: !12)
-!30 = !DILocation(line: 2, column: 67, scope: !25)
-!31 = !DILocation(line: 2, column: 86, scope: !25)
-!32 = !DILocation(line: 2, column: 93, scope: !25)
diff --git a/test/CodeGen/BPF/warn-stack.ll b/test/CodeGen/BPF/warn-stack.ll
deleted file mode 100644
index 5a579d28554a..000000000000
--- a/test/CodeGen/BPF/warn-stack.ll
+++ /dev/null
@@ -1,76 +0,0 @@
-; RUN: not llc -march=bpfel < %s 2>&1 >/dev/null | FileCheck %s
-
-;; CHECK-NOT: nowarn
-define void @nowarn() local_unnamed_addr #0 !dbg !6 {
- %1 = alloca [504 x i8], align 1
- %2 = getelementptr inbounds [504 x i8], [504 x i8]* %1, i64 0, i64 0, !dbg !15
- call void @llvm.lifetime.start.p0i8(i64 504, i8* nonnull %2) #4, !dbg !15
- tail call void @llvm.dbg.declare(metadata [504 x i8]* %1, metadata !10, metadata !16), !dbg !17
- call void @doit(i8* nonnull %2) #4, !dbg !18
- call void @llvm.lifetime.end.p0i8(i64 504, i8* nonnull %2) #4, !dbg !19
- ret void, !dbg !19
-}
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
-
-; Function Attrs: nounwind readnone
-declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
-
-declare void @doit(i8*) local_unnamed_addr #3
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
-
-; CHECK: error: warn_stack.c
-; CHECK: BPF stack limit
-define void @warn() local_unnamed_addr #0 !dbg !20 {
- %1 = alloca [512 x i8], align 1
- %2 = getelementptr inbounds [512 x i8], [512 x i8]* %1, i64 0, i64 0, !dbg !26
- call void @llvm.lifetime.start.p0i8(i64 512, i8* nonnull %2) #4, !dbg !26
- tail call void @llvm.dbg.declare(metadata [512 x i8]* %1, metadata !22, metadata !16), !dbg !27
- call void @doit(i8* nonnull %2) #4, !dbg !28
- call void @llvm.lifetime.end.p0i8(i64 512, i8* nonnull %2) #4, !dbg !29
- ret void, !dbg !29
-}
-
-attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #1 = { argmemonly nounwind }
-attributes #2 = { nounwind readnone }
-attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #4 = { nounwind }
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!3, !4}
-!llvm.ident = !{!5}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 5.0.0 (trunk 292141) (llvm/trunk 292156)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
-!1 = !DIFile(filename: "warn_stack.c", directory: "/w/llvm/bld")
-!2 = !{}
-!3 = !{i32 2, !"Dwarf Version", i32 4}
-!4 = !{i32 2, !"Debug Info Version", i32 3}
-!5 = !{!"clang version 5.0.0 (trunk 292141) (llvm/trunk 292156)"}
-!6 = distinct !DISubprogram(name: "nowarn", scope: !1, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !9)
-!7 = !DISubroutineType(types: !8)
-!8 = !{null}
-!9 = !{!10}
-!10 = !DILocalVariable(name: "buf", scope: !6, file: !1, line: 4, type: !11)
-!11 = !DICompositeType(tag: DW_TAG_array_type, baseType: !12, size: 4088, elements: !13)
-!12 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
-!13 = !{!14}
-!14 = !DISubrange(count: 504)
-!15 = !DILocation(line: 4, column: 2, scope: !6)
-!16 = !DIExpression()
-!17 = !DILocation(line: 4, column: 7, scope: !6)
-!18 = !DILocation(line: 5, column: 2, scope: !6)
-!19 = !DILocation(line: 6, column: 1, scope: !6)
-!20 = distinct !DISubprogram(name: "warn", scope: !1, file: !1, line: 7, type: !7, isLocal: false, isDefinition: true, scopeLine: 8, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !21)
-!21 = !{!22}
-!22 = !DILocalVariable(name: "buf", scope: !20, file: !1, line: 9, type: !23)
-!23 = !DICompositeType(tag: DW_TAG_array_type, baseType: !12, size: 4096, elements: !24)
-!24 = !{!25}
-!25 = !DISubrange(count: 512)
-!26 = !DILocation(line: 9, column: 2, scope: !20)
-!27 = !DILocation(line: 9, column: 7, scope: !20)
-!28 = !DILocation(line: 10, column: 2, scope: !20)
-!29 = !DILocation(line: 11, column: 1, scope: !20)