summaryrefslogtreecommitdiff
path: root/chapter25/src/test/java/com
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-09-13 16:41:28 -0700
committerCliff Click <cliffc@acm.org>2026-09-13 16:41:28 -0700
commit56889e162ce25b16978708c6037ddf2961e89546 (patch)
treea6edf3907e77036ce7fdf11ed0ddb6632508f449 /chapter25/src/test/java/com
parentcdc1ac01c3935587f4c11140d8afb22bec0e7581 (diff)
downloadSimple-56889e162ce25b16978708c6037ddf2961e89546.tar.gz
Simple-56889e162ce25b16978708c6037ddf2961e89546.zip
Do BulkMemPhi splits one by one
Diffstat (limited to 'chapter25/src/test/java/com')
-rw-r--r--chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java70
-rw-r--r--chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java4
2 files changed, 13 insertions, 61 deletions
diff --git a/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java b/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java
index a393a623..2966ec04 100644
--- a/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java
+++ b/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java
@@ -21,68 +21,16 @@ public class Chapter25Test {
@Ignore
@Test
public void testJig() {
- String src =
-"""
-if(3) arg=arg^arg;
-else return arg;
-u8 v0=arg^--arg;
-if(v0<=1) return 37;
-else {
- arg=arg;
- while(3) {
- arg=v0==++arg;
- arg=v0;
- break;
+ String src =" while(1?!0:arg++) {";
+ String src2 = """
+int v0=0^0;
+ while(1) {
+ arg=v0++&0;
+ int v2=0;
+ if(v0)
+ if(v0) v2=0;
}
-}
-arg=arg;
-struct IC95xuj {
- bool v1;
- u8 v2;
- u8 He;
-};
-if(v0<new IC95xuj.He) while(new IC95xuj.He<!new IC95xuj.He) {
- arg=new IC95xuj.He;
- if(new IC95xuj.v1) while(new IC95xuj.v1) if(0&&new IC95xuj.v2) continue;
- else v0=false?new IC95xuj.v2:new IC95xuj.v1&2;
- else if(new IC95xuj.v2!=3>-++arg*arg) while(false + new IC95xuj.v2) arg=-arg;
- else continue;
- v0=new IC95xuj.v2;
- arg=-new IC95xuj.He;
- flt v3=-arg||---v0;
- IC95xuj !v0=new IC95xuj;
- v3=arg;
- }
-else {
- v0=-new IC95xuj.He;
- v0=---v0/---v0+new IC95xuj.He;
- return -new IC95xuj.v1|(++arg>arg?new IC95xuj.He:++v0);
-}
-while(-new IC95xuj.He*arg<=--v0||106) return new IC95xuj;
-while(new IC95xuj.v1<new IC95xuj.v2) {
- if(new IC95xuj.v1||v0) break;
- else {
- int arg=new IC95xuj.v1;
- while(arg<new IC95xuj.v1) {
- arg=arg+0;
- while(new IC95xuj.v2+!new IC95xuj.He)
- continue;
- arg=0==new IC95xuj;
- }
- }
- v0=1&new IC95xuj.He&new IC95xuj.He^arg;
- v0=arg||--v0<--new IC95xuj.v2|3?new IC95xuj.v2&-new IC95xuj.v2:new IC95xuj.He;
- v0=4;
- break;
-}
-if(new IC95xuj.He) {
- arg=0;
- return v0;
-}
-else
- return new IC95xuj;
-
-""";
+ """;
CodeGen code = new CodeGen(src).driver(CodeGen.Phase.TypeCheck);
assertEquals("2",Eval2.eval(code,0));
}
diff --git a/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java b/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java
index 51747fe4..a4532eb2 100644
--- a/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java
+++ b/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java
@@ -19,9 +19,13 @@ public class FuzzerWrap {
-5037182906211190034L, // dead Guard control
-6359653295501938199L, // monotonicity, escape is dead
6506797708065910879L, // missing ModeNode._mode is optimistic
+ 650692970082394944L, // recursive bulk mem split
};
private static final long[] OPEN_FAILING_SEEDS = {
+ 8335100609598232836L,
+ 2520958273643234516L,
+ -3772838984504063325L,
};