aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemcc9
-rw-r--r--tests/cases/514_ta2.ll4
-rw-r--r--tests/cases/aliasbitcast.ll12
-rw-r--r--tests/cases/atomicrmw.ll8
-rw-r--r--tests/cases/atomicrmw_unaligned.ll8
-rw-r--r--tests/cases/breakinthemiddle.ll11
-rw-r--r--tests/cases/breakinthemiddle2.ll17
-rw-r--r--tests/cases/breakinthemiddle3.ll11
-rw-r--r--tests/cases/complexphi.ll6
-rw-r--r--tests/cases/dash.ll8
-rw-r--r--tests/cases/emptyasm_le32.ll5
-rw-r--r--tests/cases/entry3.ll14
-rw-r--r--tests/cases/funcptr.ll8
-rw-r--r--tests/cases/invokeundef.ll9
-rw-r--r--tests/cases/legalizer_ta2.ll4
-rw-r--r--tests/cases/loadbitcastgep.ll7
-rw-r--r--tests/cases/oob_ta2.ll4
-rw-r--r--tests/cases/phi24_ta2.ll7
-rw-r--r--tests/cases/phientryimplicitmix.ll22
-rw-r--r--tests/cases/phientryimplicitmoar.ll14
-rw-r--r--tests/cases/selectstruct.ll4
-rw-r--r--tests/cases/sillyfuncast.ll6
-rw-r--r--tests/cases/storebigfloat.ll2
-rw-r--r--tests/cases/storestruct.ll10
-rw-r--r--tests/cases/structphiparam.ll4
-rw-r--r--tests/cases/sub_11_0.ll2
-rw-r--r--tests/cases/switch64_ta2.ll13
-rw-r--r--tests/cases/uadd_overflow_ta2.ll22
-rw-r--r--tests/cases/zeroembedded.ll4
-rw-r--r--tests/cases/zeroextarg.ll6
-rw-r--r--tests/test_core.py7
31 files changed, 149 insertions, 119 deletions
diff --git a/emcc b/emcc
index 029d60a1..9a58094b 100755
--- a/emcc
+++ b/emcc
@@ -1143,11 +1143,10 @@ try:
heap = 4096
while heap < shared.Settings.TOTAL_MEMORY:
- heap *= 2
- #if heap <= 16*1024*1024:
- # heap *= 2
- #else:
- # heap += 16*1024*1024
+ if heap < 16*1024*1024:
+ heap *= 2
+ else:
+ heap += 16*1024*1024
if heap != shared.Settings.TOTAL_MEMORY:
logging.warning('increasing TOTAL_MEMORY to %d to be more reasonable for asm.js' % heap)
shared.Settings.TOTAL_MEMORY = heap
diff --git a/tests/cases/514_ta2.ll b/tests/cases/514_ta2.ll
index ae60191c..ab363242 100644
--- a/tests/cases/514_ta2.ll
+++ b/tests/cases/514_ta2.ll
@@ -1,6 +1,6 @@
; ModuleID = '/tmp/tmpxFUbAg/test_emcc1.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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
%struct.c_s = type { i8, float, i32 }
diff --git a/tests/cases/aliasbitcast.ll b/tests/cases/aliasbitcast.ll
index 70dc64ef..5e5f13aa 100644
--- a/tests/cases/aliasbitcast.ll
+++ b/tests/cases/aliasbitcast.ll
@@ -1,15 +1,15 @@
; ModuleID = '/tmp/emscripten/tmp/src.cpp.o'
-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"
-target triple = "i386-pc-linux-gnu"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1]
-@_ZN16FormWidgetChoiceD2Ev = alias bitcast (i32 678 to i8*) ; [#uses=1]
+@_ZN16FormWidgetChoiceD2Ev = alias i8* inttoptr (i32 678 to i8*) ; [#uses=1]
; [#uses=2]
-define void @"\01_Z5hellov"() {
+define void @"_Z5hellov"() {
entry:
- %0 = call i32 bitcast (i32 (i8*)* @puts to i32 (i32*)*)(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ %0 = call i32 @puts(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
br label %return
return: ; preds = %entry
@@ -25,7 +25,7 @@ entry:
%retval = alloca i32 ; [#uses=2]
%0 = alloca i32 ; [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
- call void @"\01_Z5hellov"()
+ call void @"_Z5hellov"()
store i32 0, i32* %0, align 4
%1 = load i32* %0, align 4 ; [#uses=1]
store i32 %1, i32* %retval, align 4
diff --git a/tests/cases/atomicrmw.ll b/tests/cases/atomicrmw.ll
index fe479dce..31529250 100644
--- a/tests/cases/atomicrmw.ll
+++ b/tests/cases/atomicrmw.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, %d,%d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@@ -10,10 +10,10 @@ entry:
%t = alloca i32, align 4 ; [#uses=2 type=i32**]
store i32 50, i32* %t, align 4
%0 = load i32* %t
- %1 = atomicrmw add i32* %t, i32 3 seq_cst, ; [#uses=0 type=i32] [debug line = 21:12]
+ %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]
+ %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/atomicrmw_unaligned.ll b/tests/cases/atomicrmw_unaligned.ll
index fe479dce..31529250 100644
--- a/tests/cases/atomicrmw_unaligned.ll
+++ b/tests/cases/atomicrmw_unaligned.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, %d,%d!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@@ -10,10 +10,10 @@ entry:
%t = alloca i32, align 4 ; [#uses=2 type=i32**]
store i32 50, i32* %t, align 4
%0 = load i32* %t
- %1 = atomicrmw add i32* %t, i32 3 seq_cst, ; [#uses=0 type=i32] [debug line = 21:12]
+ %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]
+ %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/breakinthemiddle.ll b/tests/cases/breakinthemiddle.ll
index 769b0e11..6e05b853 100644
--- a/tests/cases/breakinthemiddle.ll
+++ b/tests/cases/breakinthemiddle.ll
@@ -1,8 +1,11 @@
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
+
@.str = private constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1]
-define linkonce_odr i32* @main() align 2 {
- %199 = trunc i8 1 to i1 ; [#uses=1]
- br i1 %199, label %label555, label %label569
+define linkonce_odr i32 @main() align 2 {
+ %1 = trunc i8 1 to i1 ; [#uses=1]
+ br i1 %1, label %label555, label %label569
label555: ; preds = %353
br label %label569
@@ -10,7 +13,7 @@ label555: ; preds = %353
br label %label569
label569: ; preds = %555
- %333 = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ %3 = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
ret i32 0
}
diff --git a/tests/cases/breakinthemiddle2.ll b/tests/cases/breakinthemiddle2.ll
index 318b49dc..ba96654f 100644
--- a/tests/cases/breakinthemiddle2.ll
+++ b/tests/cases/breakinthemiddle2.ll
@@ -1,21 +1,24 @@
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
+
@.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
+ %a333 = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ %b199 = trunc i8 1 to i1 ; [#uses=1]
+ br i1 %b199, 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*)
+ %aa472 = 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
+ %aa473 = extractvalue { i8*, i32 } %aa472, 0
+ %aa474 = extractvalue { i8*, i32 } %aa472, 1
br label %label569
label569: ; preds = %0
- br i1 %199, label %label990, label %label999
+ br i1 %b199, label %label990, label %label999
label990:
ret i32 0 ; ret should ignore all code after it in the block
diff --git a/tests/cases/breakinthemiddle3.ll b/tests/cases/breakinthemiddle3.ll
index e9173965..38da15ef 100644
--- a/tests/cases/breakinthemiddle3.ll
+++ b/tests/cases/breakinthemiddle3.ll
@@ -1,9 +1,12 @@
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
+
@.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]
- switch i32 %333, label %label999 [
+ %a333 = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ %z199 = trunc i8 1 to i1 ; [#uses=1]
+ switch i32 %a333, label %label999 [
i32 1000, label %label995
] ; switch should ignore all code after it in the block
; No predecessors!
@@ -14,7 +17,7 @@ define linkonce_odr i32 @main() align 2 {
br label %label999
label995:
- %333b = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
+ %b333b = call i32 @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
br label %label999
label999: ; preds = %555
diff --git a/tests/cases/complexphi.ll b/tests/cases/complexphi.ll
index fcb7185f..e79e6f1b 100644
--- a/tests/cases/complexphi.ll
+++ b/tests/cases/complexphi.ll
@@ -1,6 +1,6 @@
; ModuleID = '/dev/shm/tmp/src.cpp.o'
-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"
-target triple = "i386-pc-linux-gnu"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@_dispatchTable = internal global i64 0
@@ -21,8 +21,6 @@ cond.end: ; preds = %cond.false, %cond.t
%cond = phi { i32, i32 } [ { i32 5, i32 6 }, %entry ], [ zeroinitializer, %cond.null ] ; [#uses=1]
store { i32, i32 } %cond, { i32, i32 }* %comp
- store { i32, i32 } { i32 ptrtoint (i64* @_dispatchTable to i32), i32 0 }, { i32, i32 }* getelementptr inbounds ([1 x i64]* @_dispatchTable, i32 0, i32 0, i32 1), align 4
-
ret i32 0 ; [debug line = 6:13]
}
diff --git a/tests/cases/dash.ll b/tests/cases/dash.ll
index ed5b01ae..6833a42e 100644
--- a/tests/cases/dash.ll
+++ b/tests/cases/dash.ll
@@ -1,6 +1,6 @@
; ModuleID = '/tmp/tmpqfApGD/a.out.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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@other-name = alias i32 ()* @main
@@ -10,9 +10,9 @@ define i32 @main() {
entry:
%ret-val = alloca i32, align 4
store i32 0, i32* %ret-val
- %aaa = bitcast i32 ()* @other-name to i32
+ %aaa = ptrtoint i32 ()* @other-name to i32
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.st-r, i32 0, i32 0), i32 %aaa)
- ret i32 %ret-val
+ ret i32 0
}
declare i32 @printf(i8*, ...)
diff --git a/tests/cases/emptyasm_le32.ll b/tests/cases/emptyasm_le32.ll
index e123d3d5..8f6b606e 100644
--- a/tests/cases/emptyasm_le32.ll
+++ b/tests/cases/emptyasm_le32.ll
@@ -1,3 +1,6 @@
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
+
; ModuleID = 'tests/hello_world.bc'
@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@@ -7,7 +10,7 @@ define i32 @main() {
entry:
%retval = alloca i32, align 4 ; [#uses=1 type=i32*]
store i32 0, i32* %retval
- call void asm sideeffect "", "~{memory}"() nounwind, !srcloc !0
+ call void asm sideeffect "", "~{memory}"() nounwind
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0 type=i32]
ret i32 1
}
diff --git a/tests/cases/entry3.ll b/tests/cases/entry3.ll
index a20c6843..6888d0a8 100644
--- a/tests/cases/entry3.ll
+++ b/tests/cases/entry3.ll
@@ -1,25 +1,25 @@
; ModuleID = '/tmp/tmpKnA2D3/a.out.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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [11 x i8] c"getgid=%d\0A\00", align 1
@.str1 = private unnamed_addr constant [6 x i8] c"f=%d\0A\00", align 1
define internal i32 @_Z1fii(i32, i32) noinline {
entry:
- %3 = tail call i32 @getgid()
- %4 = icmp eq i32 %3, 0
- br i1 %4, label %cond.b, label %cond.a
+ %a3 = tail call i32 @getgid()
+ %a4 = icmp eq i32 %a3, 0
+ br i1 %a4, label %cond.b, label %cond.a
cond.a:
- %6 = tail call i32 @getgid()
+ %a6 = tail call i32 @getgid()
br label %cond.end
cond.b:
br label %cond.end
cond.end:
- %.0 = phi i32 [ 0, %cond.b ], [ 1, %1 ]
+ %.0 = phi i32 [ 0, %cond.b ], [ 1, %cond.a ]
ret i32 %.0
}
diff --git a/tests/cases/funcptr.ll b/tests/cases/funcptr.ll
index 0aa03fcf..ef869c33 100644
--- a/tests/cases/funcptr.ll
+++ b/tests/cases/funcptr.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [17 x i8] c"hello %d world!\0A\00", align 1 ; [#uses=1 type=[17 x i8]*]
@@ -9,7 +9,7 @@ define i32 @main() {
entry:
%retval = alloca i32, align 4 ; [#uses=1 type=i32*]
store i32 0, i32* %retval
- %access_virt_barray = bitcast i32 100 to [64 x i16]* (i32*, i32)**
+ %access_virt_barray = inttoptr i32 100 to [64 x i16]* (i32*, i32)**
store [64 x i16]* (i32*, i32)* @access_virt_barray, [64 x i16]* (i32*, i32)** %access_virt_barray, align 4
%wakaptr = bitcast [64 x i16]* (i32*, i32)** %access_virt_barray to i32*
%waka = load i32* %wakaptr
@@ -20,7 +20,7 @@ entry:
}
define [64 x i16]* @access_virt_barray(i32*, i32) {
- ret void
+ ret [64 x i16]* inttoptr (i32 0 to [64 x i16]*)
}
; [#uses=1]
diff --git a/tests/cases/invokeundef.ll b/tests/cases/invokeundef.ll
index 9dc1f93d..be1dd671 100644
--- a/tests/cases/invokeundef.ll
+++ b/tests/cases/invokeundef.ll
@@ -1,7 +1,7 @@
; ModuleID = '/dev/shm/tmp/src.cpp.o'
; Just test for compilation here
-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-f128:128:128-n8:16:32"
-target triple = "i386-pc-linux-gnu"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
%struct.CPU_Regs = type { [8 x %union.GenReg32] }
%union.GenReg32 = type { [1 x i32] }
@@ -16,14 +16,15 @@ entry:
%0 = alloca i32 ; [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
%1 = load i32* bitcast (i32* getelementptr inbounds (%struct.CPU_Regs* @cpu_regs, i32 0, i32 0, i32 1, i32 0, i32 0) to i32*), align 2 ; [#uses=1]
- store i16 %1, i16* bitcast (%struct.CPU_Regs* @cpu_regs to i16*), align 2
+ %a1 = trunc i32 %1 to i16
+ store i16 %a1, i16* bitcast (%struct.CPU_Regs* @cpu_regs to i16*), align 2
%2 = call i32 @puts(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
store i32 0, i32* %0, align 4
%3 = load i32* %0, align 4 ; [#uses=1]
store i32 %3, i32* %retval, align 4
br label %return
- invoke void undef(%struct.CPU_Regs* noalias @cpu_regs, i32 %99)
+ invoke void undef(%struct.CPU_Regs* noalias @cpu_regs, i32 0)
to label %invcont33 unwind label %lpad106
invcont33:
diff --git a/tests/cases/legalizer_ta2.ll b/tests/cases/legalizer_ta2.ll
index 89ebcef6..6f153ad2 100644
--- a/tests/cases/legalizer_ta2.ll
+++ b/tests/cases/legalizer_ta2.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@globaliz = global [300 x i8] zeroinitializer
diff --git a/tests/cases/loadbitcastgep.ll b/tests/cases/loadbitcastgep.ll
index 2a90dbb7..cfb88a0d 100644
--- a/tests/cases/loadbitcastgep.ll
+++ b/tests/cases/loadbitcastgep.ll
@@ -1,6 +1,6 @@
; ModuleID = '/dev/shm/tmp/src.cpp.o'
-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-f128:128:128-n8:16:32"
-target triple = "i386-pc-linux-gnu"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
%struct.CPU_Regs = type { [8 x %union.GenReg32] }
%union.GenReg32 = type { [1 x i32] }
@@ -15,7 +15,8 @@ entry:
%0 = alloca i32 ; [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
%1 = load i32* bitcast (i32* getelementptr inbounds (%struct.CPU_Regs* @cpu_regs, i32 0, i32 0, i32 1, i32 0, i32 0) to i32*), align 2 ; [#uses=1]
- store i16 %1, i16* bitcast (%struct.CPU_Regs* @cpu_regs to i16*), align 2
+ %b = trunc i32 %1 to i16
+ store i16 %b, i16* bitcast (%struct.CPU_Regs* @cpu_regs to i16*), align 2
%2 = call i32 @puts(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0]
store i32 0, i32* %0, align 4
%3 = load i32* %0, align 4 ; [#uses=1]
diff --git a/tests/cases/oob_ta2.ll b/tests/cases/oob_ta2.ll
index 3c94c13c..b95d28da 100644
--- a/tests/cases/oob_ta2.ll
+++ b/tests/cases/oob_ta2.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
%structy = type { [2 x [10 x i8]] }
diff --git a/tests/cases/phi24_ta2.ll b/tests/cases/phi24_ta2.ll
index 2d9b6646..18577fee 100644
--- a/tests/cases/phi24_ta2.ll
+++ b/tests/cases/phi24_ta2.ll
@@ -1,9 +1,6 @@
-;;; trunc i32 into i24, needs $0 on target variable name
-
-; ModuleID = '/tmp/tmpvqlBv2/a.out.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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
%union.U4 = type { i32 }
%union.U3 = type { i8* }
diff --git a/tests/cases/phientryimplicitmix.ll b/tests/cases/phientryimplicitmix.ll
index 9223c059..527c761f 100644
--- a/tests/cases/phientryimplicitmix.ll
+++ b/tests/cases/phientryimplicitmix.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
; Phi nodes can refer to the entry. And the entry might be unnamed, and doesn't even have a consistent implicit name!
@@ -9,20 +9,20 @@ target triple = "i386-pc-linux-gnu"
; [#uses=0]
define i32 @main() {
%retval = alloca i32, align 4 ; [#uses=1 type=i32*]
- %16 = trunc i32 1 to i1
- br i1 %16, label %whoosh, label %26, !dbg !1269853 ; [debug line = 3920:5]
+ %1 = trunc i32 1 to i1
+ br i1 %1, label %whoosh, label %L26
whoosh: ; preds = %1
- %25 = trunc i32 1 to i1
- br label %26
+ %a25 = trunc i32 1 to i1
+ br label %L26
-; <label>:26 ; preds = %17, %1
- %27 = phi i1 [ false, %1 ], [ %25, %whoosh ] ; [#uses=1 type=i1]
- %28 = phi i1 [ true, %1 ], [ %25, %whoosh ] ; [#uses=1 type=i1]
+L26:
+ %a27 = phi i1 [ false, %0 ], [ true, %whoosh ] ; [#uses=1 type=i1]
+ %a28 = phi i1 [ true, %0 ], [ false, %whoosh ] ; [#uses=1 type=i1]
store i32 0, i32* %retval
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0)) ; [#uses=0 type=i32]
- %cal2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i32 %27) ; make sure %27 is used
- %cal3 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i32 %28) ; make sure %28 is used
+ %cal2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i1 %a27) ; make sure %27 is used
+ %cal3 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i1 %a28) ; make sure %28 is used
ret i32 1
}
diff --git a/tests/cases/phientryimplicitmoar.ll b/tests/cases/phientryimplicitmoar.ll
index c83458e6..0f07cc44 100644
--- a/tests/cases/phientryimplicitmoar.ll
+++ b/tests/cases/phientryimplicitmoar.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@.str2 = private unnamed_addr constant [15 x i8] c"hello!!world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@@ -9,16 +9,16 @@ define i32 @main() {
%retval = alloca i32, align 4
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str2, i32 0, i32 0))
%a12 = zext i1 1 to i32
- br label %13
+ br label %L13
-; <label>:13 ; preds = %13, %1
- %a14 = phi i32 [ %a12, %1 ], [ %a15, %13 ]
+L13:
+ %a14 = phi i32 [ %a12, %0 ], [ %a15, %L13 ]
%call0 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0))
%a15 = add nsw i32 %a14, 2
%a16 = icmp eq i32 %a15, 9
- br i1 %a16, label %17, label %13
+ br i1 %a16, label %L17, label %L13
-; <label>:17 ; preds = %1
+L17:
%call1 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str2, i32 0, i32 0))
ret i32 1
}
diff --git a/tests/cases/selectstruct.ll b/tests/cases/selectstruct.ll
index 5c9fecf7..58b1848e 100644
--- a/tests/cases/selectstruct.ll
+++ b/tests/cases/selectstruct.ll
@@ -8,7 +8,9 @@ target triple = "i386-pc-linux-gnu"
define i32 @main() {
entry:
%retval = alloca i32, align 4 ; [#uses=1 type=i32*]
- %. = select i1 %retval, { i32, i32 } { i32 55, i32 99 }, { i32, i32 } { i32 2, i32 6 } ; [#uses=1 type={ i32, i32 }]
+ %check = ptrtoint i32* %retval to i32
+ %check1 = trunc i32 %check to i1
+ %. = select i1 %check1, { i32, i32 } { i32 55, i32 99 }, { i32, i32 } { i32 2, i32 6 } ; [#uses=1 type={ i32, i32 }]
store i32 0, i32* %retval
%.1 = extractvalue { i32, i32 } %., 0
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8]* @.str, i32 0, i32 0), i32 %.1) ; [#uses=0 type=i32]
diff --git a/tests/cases/sillyfuncast.ll b/tests/cases/sillyfuncast.ll
index 36c26720..33598104 100644
--- a/tests/cases/sillyfuncast.ll
+++ b/tests/cases/sillyfuncast.ll
@@ -1,6 +1,6 @@
; 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"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
@@ -13,7 +13,7 @@ define i32 @main() {
entry:
%retval = alloca i32, align 4 ; [#uses=1 type=i32*]
store i32 0, i32* %retval
- %58 = tail call i32 bitcast (void ()* @doit to i32 ()*)() nounwind
+ %0 = tail call i32 bitcast (void ()* @doit to i32 ()*)() nounwind
ret i32 1
}
diff --git a/tests/cases/storebigfloat.ll b/tests/cases/storebigfloat.ll
index c9995835..b940f5ca 100644
--- a/tests/cases/storebigfloat.ll
+++ b/tests/cases/storebigfloat.ll
@@ -1,3 +1,5 @@
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
@.str = private unnamed_addr constant [15 x i8] c"hello, world!\0A\00", align 1 ; [#uses=1 type=[15 x i8]*]
diff --git a/tests/cases/storestruct.ll b/tests/cases/storestruct.ll
index a5b7483b..3e996195 100644
--- a/tests/cases/storestruct.ll
+++ b/tests/cases/storestruct.ll
@@ -1,6 +1,6 @@
; ModuleID = '/dev/shm/tmp/src.cpp.o'
-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"
-target triple = "i386-pc-linux-gnu"
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
; Load and store an entire structure as a whole (and also load as a whole, extract values and save separately, etc.)
@@ -43,7 +43,11 @@ entry:
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str, i32 0, i32 0), i32 %tmp5, i32 %tmp6), !dbg !18 ; [#uses=0]
%ptr = inttoptr i32 52 to i32* ; [#uses=1]
- store %struct.X { i32 ptrtoint (i32* getelementptr inbounds (i32* %ptr, i32 1, i32 0) to i32), i32 3 }, %struct.X* %y, align 4 ; store entire struct at once
+ %ptrgep = getelementptr inbounds i32* %ptr, i32 1
+ %ptrgepint = ptrtoint i32* %ptrgep to i32
+ %ss1 = insertvalue %struct.X undef, i32 %ptrgepint, 0
+ %ss2 = insertvalue %struct.X %ss1, i32 3, 1
+ store %struct.X %ss2, %struct.X* %y, align 4 ; store entire struct at once
%tmp5b = load i32* %a1, align 4, !dbg !18 ; [