diff options
Diffstat (limited to 'tests')
71 files changed, 13057 insertions, 179 deletions
diff --git a/tests/aniso.c b/tests/aniso.c index e673e228..e02c20ac 100644 --- a/tests/aniso.c +++ b/tests/aniso.c @@ -145,6 +145,11 @@ int main(int argc, char *argv[]) glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, aniso); } + { + assert(!glGetError()); + glBindFramebuffer(GL_RENDERBUFFER, 0); + assert(glGetError()); + } // Prepare and Render diff --git a/tests/aniso.png b/tests/aniso.png Binary files differindex 5f5812d2..2bcb2f5f 100644 --- a/tests/aniso.png +++ b/tests/aniso.png diff --git a/tests/bullet/output3.txt b/tests/bullet/output3.txt new file mode 100644 index 00000000..78f27f9f --- /dev/null +++ b/tests/bullet/output3.txt @@ -0,0 +1,270 @@ +world pos = 2.00,10.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.99,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.98,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.97,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.96,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.94,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.92,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.90,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.85,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.82,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.78,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.71,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.62,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.57,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.52,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.47,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.42,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.36,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.30,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.23,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.10,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.02,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.79,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.71,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.62,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.53,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.44,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.35,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.15,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.05,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.94,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.83,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.72,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.61,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.49,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.37,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.13,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.73,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.60,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.46,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.32,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.03,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.72,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.57,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.41,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.92,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.58,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.40,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.22,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.04,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.86,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.48,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.29,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.10,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.90,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.70,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.50,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.29,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.66,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.44,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.22,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.77,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.55,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.32,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.15,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.39,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.63,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.13,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.38,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.63,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.14,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.40,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.93,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.20,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.48,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.03,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.31,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.59,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.13,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.10,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.08,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.05,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.03,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.01,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.99,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.98,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.97,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.96,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.96,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.97,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.98,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.99,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,-0.00 +world pos = 0.00,-56.00,0.00 diff --git a/tests/cases/atomicrmw.ll b/tests/cases/atomicrmw.ll index 2f5a4224..fe479dce 100644 --- a/tests/cases/atomicrmw.ll +++ b/tests/cases/atomicrmw.ll @@ -13,6 +13,7 @@ entry: %1 = atomicrmw add i32* %t, i32 3 seq_cst, ; [#uses=0 type=i32] [debug line = 21:12] %2 = load i32* %t %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i32 %0, i32 %2) ; [#uses=0 type=i32] + %3 = atomicrmw volatile add i32* %t, i32 3 seq_cst, ; [#uses=0 type=i32] [debug line = 21:12] ret i32 1 } diff --git a/tests/cases/breakinthemiddle2.ll b/tests/cases/breakinthemiddle2.ll new file mode 100644 index 00000000..318b49dc --- /dev/null +++ b/tests/cases/breakinthemiddle2.ll @@ -0,0 +1,35 @@ +@.str = private constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1] + +define linkonce_odr i32 @main() align 2 { + %333 = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0] + %199 = trunc i8 1 to i1 ; [#uses=1] + br i1 %199, label %label555, label %label569 + +label555: ; preds = %0 + br label %label569 ; branch should ignore all code after it in the block + ; No predecessors! + %a472 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) + cleanup + %a473 = extractvalue { i8*, i32 } %a472, 0 + %a474 = extractvalue { i8*, i32 } %a472, 1 + br label %label569 + +label569: ; preds = %0 + br i1 %199, label %label990, label %label999 + +label990: + ret i32 0 ; ret should ignore all code after it in the block + ; No predecessors! + %a472 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) + cleanup + %a473 = extractvalue { i8*, i32 } %a472, 0 + %a474 = extractvalue { i8*, i32 } %a472, 1 + br label %label569 + +label999: ; preds = %555 + ret i32 0 +} + +declare i32 @printf(i8*) +declare i32 @__gxx_personality_v0(...) + diff --git a/tests/cases/callalias.ll b/tests/cases/callalias.ll new file mode 100644 index 00000000..9bc1ffd0 --- /dev/null +++ b/tests/cases/callalias.ll @@ -0,0 +1,21 @@ +; ModuleID = 'tests/hello_world.bc' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128" +target triple = "i386-pc-linux-gnu" + +@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] + +@othername = alias internal void ()* @doit + +define internal void @doit() unnamed_addr nounwind align 2 { + %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0 type=i32] + ret void +} + +define i32 @main() { +entry: + tail call void ()* @othername() nounwind + ret i32 1 +} + +declare i32 @printf(i8*, ...) + diff --git a/tests/cases/callalias2.ll b/tests/cases/callalias2.ll new file mode 100644 index 00000000..abdbe4e6 --- /dev/null +++ b/tests/cases/callalias2.ll @@ -0,0 +1,22 @@ +; ModuleID = 'tests/hello_world.bc' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128" +target triple = "i386-pc-linux-gnu" + +@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] + +@othername = alias internal void ()* @doit +@othername2 = alias internal void ()* @othername + +define internal void @doit() unnamed_addr nounwind align 2 { + %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0 type=i32] + ret void +} + +define i32 @main() { +entry: + tail call void ()* @othername2() nounwind + ret i32 1 +} + +declare i32 @printf(i8*, ...) + diff --git a/tests/cases/cmpxchg_volatile.ll b/tests/cases/cmpxchg_volatile.ll new file mode 100644 index 00000000..019fd833 --- /dev/null +++ b/tests/cases/cmpxchg_volatile.ll @@ -0,0 +1,548 @@ +; ModuleID = 'ta2.bc' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128" +target triple = "i386-pc-linux-gnu" + +%"struct.std::__1::__atomic_base.0" = type { i8 } +%"struct.std::__1::__atomic_base" = type { %"struct.std::__1::__atomic_base.0" } +%"struct.std::__1::atomic" = type { %"struct.std::__1::__atomic_base" } + +@.str = private unnamed_addr constant [8 x i8] c"ta2.cpp\00", align 1 +@__PRETTY_FUNCTION__._Z7do_testIVNSt3__16atomicIcEEcEvv = private unnamed_addr constant [63 x i8] c"void do_test() [A = volatile std::__1::atomic<char>, T = char]\00", align 1 +@.str1 = private unnamed_addr constant [43 x i8] c"obj.compare_exchange_weak(x, T(2)) == true\00", align 1 +@.str2 = private unnamed_addr constant [12 x i8] c"obj == T(2)\00", align 1 +@.str3 = private unnamed_addr constant [10 x i8] c"x == T(3)\00", align 1 +@.str4 = private unnamed_addr constant [44 x i8] c"obj.compare_exchange_weak(x, T(1)) == false\00", align 1 +@.str5 = private unnamed_addr constant [10 x i8] c"x == T(2)\00", align 1 +@.str6 = private unnamed_addr constant [45 x i8] c"obj.compare_exchange_strong(x, T(1)) == true\00", align 1 +@.str7 = private unnamed_addr constant [12 x i8] c"obj == T(1)\00", align 1 +@.str8 = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*] + +define i32 @main() ssp { +entry: + %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str8, i32 0, i32 0)) ; [#uses=0 type=i32] + call void @_Z4testIVNSt3__16atomicIcEEcEvv() + ret i32 0 +} + +define linkonce_odr void @_Z4testIVNSt3__16atomicIcEEcEvv() ssp { +entry: + call void @_Z7do_testIVNSt3__16atomicIcEEcEvv() + call void @_Z7do_testIVNSt3__16atomicIcEEcEvv() + ret void +} + +define linkonce_odr void @_Z7do_testIVNSt3__16atomicIcEEcEvv() ssp { +entry: + %this.addr.i.i110 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__m.addr.i.i111 = alloca i32, align 4 + %.atomicdst.i.i112 = alloca i8, align 1 + %this.addr.i113 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %this.addr.i90 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__e.addr.i91 = alloca i8*, align 4 + %__d.addr.i92 = alloca i8, align 1 + %__m.addr.i93 = alloca i32, align 4 + %.atomictmp.i94 = alloca i8, align 1 + %.atomicdst.i95 = alloca i8, align 1 + %this.addr.i.i79 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__m.addr.i.i80 = alloca i32, align 4 + %.atomicdst.i.i81 = alloca i8, align 1 + %this.addr.i82 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %this.addr.i60 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__e.addr.i61 = alloca i8*, align 4 + %__d.addr.i62 = alloca i8, align 1 + %__m.addr.i63 = alloca i32, align 4 + %.atomictmp.i64 = alloca i8, align 1 + %.atomicdst.i65 = alloca i8, align 1 + %this.addr.i.i49 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__m.addr.i.i50 = alloca i32, align 4 + %.atomicdst.i.i51 = alloca i8, align 1 + %this.addr.i52 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %this.addr.i46 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__e.addr.i = alloca i8*, align 4 + %__d.addr.i47 = alloca i8, align 1 + %__m.addr.i = alloca i32, align 4 + %.atomictmp.i = alloca i8, align 1 + %.atomicdst.i = alloca i8, align 1 + %this.addr.i.i42 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__m.addr.i.i = alloca i32, align 4 + %.atomicdst.i.i = alloca i8, align 1 + %this.addr.i43 = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %this.addr.i.i.i.i = alloca %"struct.std::__1::__atomic_base.0"*, align 4 + %__d.addr.i.i.i.i = alloca i8, align 1 + %this.addr.i.i.i = alloca %"struct.std::__1::__atomic_base"*, align 4 + %__d.addr.i.i.i = alloca i8, align 1 + %this.addr.i.i = alloca %"struct.std::__1::atomic"*, align 4 + %__d.addr.i.i = alloca i8, align 1 + %this.addr.i = alloca %"struct.std::__1::atomic"*, align 4 + %__d.addr.i = alloca i8, align 1 + |