about summary refs log tree commit diff homepage
path: root/test/Feature
diff options
context:
space:
mode:
Diffstat (limited to 'test/Feature')
-rw-r--r--test/Feature/Atomic.c1
-rw-r--r--test/Feature/BitcastAlias.leq36.ll35
-rw-r--r--test/Feature/BitcastAlias.leq37.ll38
-rw-r--r--test/Feature/BitcastAlias.ll4
-rw-r--r--test/Feature/BitcastAliasMD2U.leq36.ll35
-rw-r--r--test/Feature/BitcastAliasMD2U.leq37.ll38
-rw-r--r--test/Feature/BitcastAliasMD2U.ll4
-rw-r--r--test/Feature/ConstExprWithDivZero.ll18
-rw-r--r--test/Feature/ConstExprWithOvershift.ll18
-rw-r--r--test/Feature/ConstantArray.leq36.ll52
-rw-r--r--test/Feature/ConstantArray.ll4
-rw-r--r--test/Feature/ConstantStruct.leq36.ll34
-rw-r--r--test/Feature/ConstantStruct.ll2
-rw-r--r--test/Feature/GetElementPtr.leq36.ll30
-rw-r--r--test/Feature/GetElementPtr.ll2
-rw-r--r--test/Feature/InsertExtractValue.leq36.ll34
-rw-r--r--test/Feature/InsertExtractValue.ll2
-rw-r--r--test/Feature/Overflow.leq36.ll45
-rw-r--r--test/Feature/Overflow.ll2
-rw-r--r--test/Feature/OverflowMul.leq36.ll45
-rw-r--r--test/Feature/OverflowMul.ll2
-rw-r--r--test/Feature/_utils._ll3
-rw-r--r--test/Feature/_utils.leq36._ll71
23 files changed, 0 insertions, 519 deletions
diff --git a/test/Feature/Atomic.c b/test/Feature/Atomic.c
index a7a8e340..482eea1d 100644
--- a/test/Feature/Atomic.c
+++ b/test/Feature/Atomic.c
@@ -1,4 +1,3 @@
-// REQUIRES: geq-llvm-3.7
 // RUN: %clang %s -emit-llvm -g -c -o %t.bc
 // RUN: rm -rf %t.klee-out
 // RUN: %klee --output-dir=%t.klee-out --exit-on-error %t.bc 2>%t.log
diff --git a/test/Feature/BitcastAlias.leq36.ll b/test/Feature/BitcastAlias.leq36.ll
deleted file mode 100644
index 467b6d17..00000000
--- a/test/Feature/BitcastAlias.leq36.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-@foo = alias i32 (i32)* @__foo
-
-define i32 @__foo(i32 %i) nounwind {
-entry:
-  ret i32 %i
-}
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %call = call i32 (i64)* bitcast (i32 (i32)* @foo to i32 (i64)*)(i64 52)
-  %r = icmp eq i32 %call, 52
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/BitcastAlias.leq37.ll b/test/Feature/BitcastAlias.leq37.ll
deleted file mode 100644
index eddadcf9..00000000
--- a/test/Feature/BitcastAlias.leq37.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 no longer accepts '*' with a 'call'
-; REQUIRES: geq-llvm-3.7
-; REQUIRES: lt-llvm-3.8
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-@foo = alias i32 (i32)* @__foo
-
-define i32 @__foo(i32 %i) nounwind {
-entry:
-  ret i32 %i
-}
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %call = call i32 (i64) bitcast (i32 (i32)* @foo to i32 (i64)*)(i64 52)
-  %r = icmp eq i32 %call, 52
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/BitcastAlias.ll b/test/Feature/BitcastAlias.ll
index 50ee4fb7..cf84df06 100644
--- a/test/Feature/BitcastAlias.ll
+++ b/test/Feature/BitcastAlias.ll
@@ -1,7 +1,3 @@
-; LLVM 3.8 requires a type as the first argument to 'alias'
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 no longer accepts '*' with a 'call'
-; REQUIRES: geq-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/BitcastAliasMD2U.leq36.ll b/test/Feature/BitcastAliasMD2U.leq36.ll
deleted file mode 100644
index e33f6948..00000000
--- a/test/Feature/BitcastAliasMD2U.leq36.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-@foo = alias i32 (i32)* @__foo
-
-define i32 @__foo(i32 %i) nounwind {
-entry:
-  ret i32 %i
-}
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %call = call i32 (i64)* bitcast (i32 (i32)* @foo to i32 (i64)*)(i64 52)
-  %r = icmp eq i32 %call, 52
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/BitcastAliasMD2U.leq37.ll b/test/Feature/BitcastAliasMD2U.leq37.ll
deleted file mode 100644
index 9f144774..00000000
--- a/test/Feature/BitcastAliasMD2U.leq37.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 no longer accepts '*' with a 'call'
-; REQUIRES: geq-llvm-3.7
-; REQUIRES: lt-llvm-3.8
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-@foo = alias i32 (i32)* @__foo
-
-define i32 @__foo(i32 %i) nounwind {
-entry:
-  ret i32 %i
-}
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %call = call i32 (i64) bitcast (i32 (i32)* @foo to i32 (i64)*)(i64 52)
-  %r = icmp eq i32 %call, 52
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/BitcastAliasMD2U.ll b/test/Feature/BitcastAliasMD2U.ll
index eef4cc7a..bf43d8c3 100644
--- a/test/Feature/BitcastAliasMD2U.ll
+++ b/test/Feature/BitcastAliasMD2U.ll
@@ -1,7 +1,3 @@
-; LLVM 3.8 requires a type as the first argument to 'alias'
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 no longer accepts '*' with a 'call'
-; REQUIRES: geq-llvm-3.8
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false -search=nurs:md2u %t1.bc > %t2
diff --git a/test/Feature/ConstExprWithDivZero.ll b/test/Feature/ConstExprWithDivZero.ll
deleted file mode 100644
index d50268a6..00000000
--- a/test/Feature/ConstExprWithDivZero.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; LLVM versions starting from 3.5 replace test code with "ret undef"
-; see https://github.com/klee/klee/issues/268
-; REQUIRES: llvm-3.4
-; RUN: llvm-as %s -f -o %t.bc
-; RUN: rm -rf %t.klee-out
-; RUN: not %klee --output-dir=%t.klee-out %t.bc 2> %t.log
-; RUN: FileCheck --input-file %t.log %s
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-@a = internal global i32 0, align 4
-@b = internal global [1 x i32] [i32 1], align 4
-
-define i32 @main() {
-; CHECK: Division/modulo by zero during constant folding
-  ret i32 trunc (i64 sdiv (i64 2036854775807, i64 sext (i32 select (i1 icmp eq (i32* getelementptr inbounds ([1 x i32]* @b, i64 0, i64 0), i32* @a), i32 1, i32 0) to i64)) to i32)
-}
diff --git a/test/Feature/ConstExprWithOvershift.ll b/test/Feature/ConstExprWithOvershift.ll
deleted file mode 100644
index 5f41a089..00000000
--- a/test/Feature/ConstExprWithOvershift.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; LLVM versions starting from 3.5 replace test code with "ret undef"
-; see https://github.com/klee/klee/issues/268
-; REQUIRES: llvm-3.4
-; RUN: llvm-as %s -f -o %t.bc
-; RUN: rm -rf %t.klee-out
-; RUN: not %klee --output-dir=%t.klee-out %t.bc 2> %t.log
-; RUN: FileCheck --input-file %t.log %s
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-@a = internal global i32 0, align 4
-@b = internal global [1 x i32] [i32 1], align 4
-
-define i32 @main() {
-; CHECK: Overshift during constant folding
-  ret i32 ashr (i32 zext (i1 icmp ne (i32* getelementptr inbounds ([1 x i32]* @b, i64 0, i64 0), i32* @a) to i32), i32 trunc (i64 add (i64 zext (i1 icmp ne (i32* getelementptr inbounds ([1 x i32]* @b, i64 0, i64 0), i32* @a) to i64), i64 31) to i32))
-}
diff --git a/test/Feature/ConstantArray.leq36.ll b/test/Feature/ConstantArray.leq36.ll
deleted file mode 100644
index e1664e05..00000000
--- a/test/Feature/ConstantArray.leq36.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc 2>&1 | FileCheck %s
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-@.str = private unnamed_addr constant [2 x i8] c"0\00", align 1
-@.str2 = private unnamed_addr constant [2 x i8] c"1\00", align 1
-
-%struct.dirent = type { i32, i32, i16, i8 }
-declare void @klee_print_expr(i8*, ...)
-
-define i32 @main() {
-entry:
-	%a = alloca %struct.dirent
-	%tmp1 = getelementptr %struct.dirent* %a, i32 0
-	%tmp2 = bitcast %struct.dirent* %tmp1 to <2 x i32>*
-	; Initialize with constant vector
-	store <2 x i32> <i32 42, i32 4096>, <2 x i32>* %tmp2
-	br label %exit
-exit:
-	; Print first initialized element
-	%idx = getelementptr %struct.dirent* %a, i32 0, i32 0
-	%val = load i32* %idx
-	call void(i8*, ...)* @klee_print_expr(i8* getelementptr inbounds ([2 x i8]* @.str, i32 0, i32 0), i32 %val)
-	; CHECK: 0:42
-
-	; Print second initialized element
-	%idx2 = getelementptr %struct.dirent* %a, i32 0, i32 1
-	%val2 = load i32* %idx2
-	call void(i8*, ...)* @klee_print_expr(i8* getelementptr inbounds ([2 x i8]* @.str2, i32 0, i32 0), i32 %val2)
-	; CHECK: 1:4096
-	
-	; Initialize with constant array
-	%array = alloca [2 x i32];
-	store [2 x i32][i32 7, i32 9], [2 x i32]* %array
-
-	; Print first initialized element
-	%idx3 = getelementptr [2 x i32]* %array, i32 0, i32 0
-	%val3 = load i32* %idx3
-	call void(i8*, ...)* @klee_print_expr(i8* getelementptr inbounds ([2 x i8]* @.str, i32 0, i32 0), i32 %val3)
-	; CHECK: 0:7
-
-	; Print second initialized element
-	%idx4 = getelementptr [2 x i32]* %array, i32 0, i32 1
-	%val4 = load i32* %idx4
-	call void(i8*, ...)* @klee_print_expr(i8* getelementptr inbounds ([2 x i8]* @.str2, i32 0, i32 0), i32 %val4)
-	; CHECK: 1:9
-	
-	ret i32 0
-}
diff --git a/test/Feature/ConstantArray.ll b/test/Feature/ConstantArray.ll
index e0f811cc..32d4934c 100644
--- a/test/Feature/ConstantArray.ll
+++ b/test/Feature/ConstantArray.ll
@@ -1,7 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 requires a type as the first argument to 'load'
-; LLVM 3.7 no longer accepts '*' with a 'call'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc 2>&1 | FileCheck %s
diff --git a/test/Feature/ConstantStruct.leq36.ll b/test/Feature/ConstantStruct.leq36.ll
deleted file mode 100644
index 103d07b6..00000000
--- a/test/Feature/ConstantStruct.leq36.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.sfoo = type { i32, i64 }
-
-declare i32 @puts(i8*)
-declare i32 @printf(i8*, ...)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %f0 = extractvalue %struct.sfoo { i32 3, i64 1 }, 0
-  %f1 = extractvalue %struct.sfoo { i32 3, i64 1 }, 1
-  %xf0 = zext i32 %f0 to i64
-  %f0mf1 = sub i64 %xf0, %f1
-  %r = icmp eq i64 %f0mf1, 2
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/ConstantStruct.ll b/test/Feature/ConstantStruct.ll
index 331dcfc9..57ca1663 100644
--- a/test/Feature/ConstantStruct.ll
+++ b/test/Feature/ConstantStruct.ll
@@ -1,5 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/GetElementPtr.leq36.ll b/test/Feature/GetElementPtr.leq36.ll
deleted file mode 100644
index 349ecd1b..00000000
--- a/test/Feature/GetElementPtr.leq36.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main() {
-entry:
-  %addr = alloca i8, align 4
-  %addrp1 = getelementptr i8* %addr, i32 1
-  %addrp1m1 = getelementptr i8* %addrp1, i32 -1
-  %test = icmp eq i8* %addr, %addrp1m1
-  br i1 %test, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/GetElementPtr.ll b/test/Feature/GetElementPtr.ll
index a0bfad0f..e92b27c2 100644
--- a/test/Feature/GetElementPtr.ll
+++ b/test/Feature/GetElementPtr.ll
@@ -1,5 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/InsertExtractValue.leq36.ll b/test/Feature/InsertExtractValue.leq36.ll
deleted file mode 100644
index 4918cc2b..00000000
--- a/test/Feature/InsertExtractValue.leq36.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.sfoo = type { i32, i32 }
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind readnone {
-entry:
-  %s0 = insertvalue %struct.sfoo undef, i32 3, 0
-  %s1 = insertvalue %struct.sfoo %s0, i32 1, 1
-  %f0 = extractvalue %struct.sfoo %s1, 0
-  %f1 = extractvalue %struct.sfoo %s1, 1
-  %f0mf1 = sub i32 %f0, %f1
-  %r = icmp eq i32 %f0mf1, 2
-  br i1 %r, label %bbtrue, label %bbfalse
-
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/InsertExtractValue.ll b/test/Feature/InsertExtractValue.ll
index 461b28de..b4e7ab55 100644
--- a/test/Feature/InsertExtractValue.ll
+++ b/test/Feature/InsertExtractValue.ll
@@ -1,5 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/Overflow.leq36.ll b/test/Feature/Overflow.leq36.ll
deleted file mode 100644
index f61c2576..00000000
--- a/test/Feature/Overflow.leq36.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-declare {i8, i1} @llvm.uadd.with.overflow.i8(i8 %a, i8 %b)
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main() {
-bb0:
-  %s0 = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 0, i8 -1)
-  %v0 = extractvalue {i8, i1} %s0, 0
-  %c0 = icmp eq i8 %v0, -1
-  br i1 %c0, label %bb0_1, label %bbfalse
-
-bb0_1:
-  %o0 = extractvalue {i8, i1} %s0, 1
-  br i1 %o0, label %bbfalse, label %bb1
-
-bb1:
-  %s1 = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 1, i8 -1)
-  %v1 = extractvalue {i8, i1} %s1, 0
-  %c1 = icmp eq i8 %v1, 0
-  br i1 %c1, label %bb1_1, label %bbfalse
-
-bb1_1:
-  %o1 = extractvalue {i8, i1} %s1, 1
-  br i1 %o1, label %bbtrue, label %bbfalse
-  
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/Overflow.ll b/test/Feature/Overflow.ll
index 06926a28..31311029 100644
--- a/test/Feature/Overflow.ll
+++ b/test/Feature/Overflow.ll
@@ -1,5 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/OverflowMul.leq36.ll b/test/Feature/OverflowMul.leq36.ll
deleted file mode 100644
index f1878a47..00000000
--- a/test/Feature/OverflowMul.leq36.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; REQUIRES: lt-llvm-3.7
-; RUN: llvm-as %s -f -o %t1.bc
-; RUN: rm -rf %t.klee-out
-; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
-; RUN: grep PASS %t2
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
-target triple = "x86_64-unknown-linux-gnu"
-
-declare {i8, i1} @llvm.umul.with.overflow.i8(i8 %a, i8 %b)
-
-declare i32 @puts(i8*)
-
-@.passstr = private constant [5 x i8] c"PASS\00", align 1
-@.failstr = private constant [5 x i8] c"FAIL\00", align 1
-
-define i32 @main() {
-bb0:
-  %s0 = call {i8, i1} @llvm.umul.with.overflow.i8(i8 1, i8 128)
-  %v0 = extractvalue {i8, i1} %s0, 0
-  %c0 = icmp eq i8 %v0, 128
-  br i1 %c0, label %bb0_1, label %bbfalse
-
-bb0_1:
-  %o0 = extractvalue {i8, i1} %s0, 1
-  br i1 %o0, label %bbfalse, label %bb1
-
-bb1:
-  %s1 = call {i8, i1} @llvm.umul.with.overflow.i8(i8 2, i8 128)
-  %v1 = extractvalue {i8, i1} %s1, 0
-  %c1 = icmp eq i8 %v1, 0
-  br i1 %c1, label %bb1_1, label %bbfalse
-
-bb1_1:
-  %o1 = extractvalue {i8, i1} %s1, 1
-  br i1 %o1, label %bbtrue, label %bbfalse
-  
-bbtrue:
-  %0 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.passstr, i64 0, i64 0)) nounwind
-  ret i32 0
-
-bbfalse:
-  %1 = call i32 @puts(i8* getelementptr inbounds ([5 x i8]* @.failstr, i64 0, i64 0)) nounwind
-  ret i32 0
-}
diff --git a/test/Feature/OverflowMul.ll b/test/Feature/OverflowMul.ll
index 89335b91..9343fdd8 100644
--- a/test/Feature/OverflowMul.ll
+++ b/test/Feature/OverflowMul.ll
@@ -1,5 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; REQUIRES: geq-llvm-3.7
 ; RUN: llvm-as %s -f -o %t1.bc
 ; RUN: rm -rf %t.klee-out
 ; RUN: %klee --output-dir=%t.klee-out --optimize=false %t1.bc > %t2
diff --git a/test/Feature/_utils._ll b/test/Feature/_utils._ll
index d825df3a..7114daab 100644
--- a/test/Feature/_utils._ll
+++ b/test/Feature/_utils._ll
@@ -1,6 +1,3 @@
-; LLVM 3.7 requires a type as the first argument to 'getelementptr'
-; LLVM 3.7 requires a type as the first argument to 'load'
-
 define i32 @util_make_and_i1(i32 %a, i32 %b) {
         %a_i1 = icmp ne i32 %a, 0
         %b_i1 = icmp ne i32 %b, 0
diff --git a/test/Feature/_utils.leq36._ll b/test/Feature/_utils.leq36._ll
deleted file mode 100644
index 32a73bb1..00000000
--- a/test/Feature/_utils.leq36._ll
+++ /dev/null
@@ -1,71 +0,0 @@
-define i32 @util_make_and_i1(i32 %a, i32 %b) {
-        %a_i1 = icmp ne i32 %a, 0
-        %b_i1 = icmp ne i32 %b, 0
-        %res_i1 = and i1 %a_i1, %b_i1
-        %res = zext i1 %res_i1 to i32
-        ret i32 %res
-}
-
-define i32 @util_make_or_i1(i32 %a, i32 %b) {
-        %a_i1 = icmp ne i32 %a, 0
-        %b_i1 = icmp ne i32 %b, 0
-        %res_i1 = or i1 %a_i1, %b_i1
-        %res = zext i1 %res_i1 to i32
-        ret i32 %res
-}
-
-define i16 @util_make_concat2(i8 %a, i8 %b) {
-        %tmp = alloca i16
-        %tmp8 = bitcast i16* %tmp to i8*
-        %p0 = getelementptr i8* %tmp8, i32 0
-        %p1 = getelementptr i8* %tmp8, i32 1
-        store i8 %b, i8* %p0
-        store i8 %a, i8* %p1
-        %concat = load i16* %tmp
-        ret i16 %concat
-}
-
-define i32 @util_make_concat4(i8 %a, i8 %b, i8 %c, i8 %d) {
-        %tmp = alloca i32
-        %tmp8 = bitcast i32* %tmp to i8*
-        %p0 = getelementptr i8* %tmp8, i32 0
-        %p1 = getelementptr i8* %tmp8, i32 1
-        %p2 = getelementptr i8* %tmp8, i32 2
-        %p3 = getelementptr i8* %tmp8, i32 3
-        store i8 %d, i8* %p0
-        store i8 %c, i8* %p1
-        store i8 %b, i8* %p2
-        store i8 %a, i8* %p3
-        %concat = load i32* %tmp
-        ret i32 %concat
-}
-
-define i64 @util_make_concat8(i8 %a, i8 %b, i8 %c, i8 %d, 
-                              i8 %e, i8 %f, i8 %g, i8 %h) {
-        %tmp = alloca i64
-        %tmp8 = bitcast i64* %tmp to i8*
-        %p0 = getelementptr i8* %tmp8, i32 0
-        %p1 = getelementptr i8* %tmp8, i32 1
-        %p2 = getelementptr i8* %tmp8, i32 2
-        %p3 = getelementptr i8* %tmp8, i32 3
-        %p4 = getelementptr i8* %tmp8, i32 4
-        %p5 = getelementptr i8* %tmp8, i32 5
-        %p6 = getelementptr i8* %tmp8, i32 6
-        %p7 = getelementptr i8* %tmp8, i32 7
-        store i8 %h, i8* %p0
-        store i8 %g, i8* %p1
-        store i8 %f, i8* %p2
-        store i8 %e, i8* %p3
-        store i8 %d, i8* %p4
-        store i8 %c, i8* %p5
-        store i8 %b, i8* %p6
-        store i8 %a, i8* %p7
-        %concat = load i64* %tmp
-        ret i64 %concat
-}
-
-define i32 @util_make_select(i32 %cond, i32 %t, i32 %f) {
-        %cond_i1 = icmp ne i32 %cond, 0
-        %res = select i1 %cond_i1, i32 %t, i32 %f
-        ret i32 %res
-}
\ No newline at end of file