Skip to content

Instantly share code, notes, and snippets.

View regehr's full-sized avatar
🎯
Focusing

John Regehr regehr

🎯
Focusing
View GitHub Profile
-----------------------------------------------------------
; start LHS (in $53)
%0 = block 2
%1:i32 = var
; (i32.shl(get_local $36)(i32.const 1))
%2 = shl %1, 1:i32
%3:i32 = var
; (i32.sub(get_local $38)(get_local $39))
%4 = sub %2, %3
-----------------------------------------------------------
; start LHS (in $2)
%0 = block 2
%1:i32 = var
; (i32.lt_s(i32.const -1000999)(get_local $17))
%2 = slt -1000999:i32, %1
blockpc %0 0 %2 1:i1
%3:i32 = zext %2
; (i32.eq(unreachable)(unreachable))
; Listing valid replacements.
; Using solver: Z3 + internal cache
; Static profile 1
; Function: wasmbackend_lua_scimark.c.js.bc:luaV_execute
%0:i32 = var
%1:i6 = trunc %0
pc %1 8:i6
%2:i32 = lshr %0, 23:i32
%3:i32 = and 256:i32, %2
-----------------------------------------------------------
; Function: wasmbackend_lua_scimark.c.js.bc:luaV_execute
%0:i32 = var
%1:i6 = trunc %0
pc %1 8:i6
%2:i32 = lshr %0, 23:i32
%3:i32 = and 256:i32, %2
%4:i1 = eq 0:i32, %3
%5:i32 = and 255:i32, %2
%6:i32 = select %4, %2, %5
-----------------------------------------------------------
; start LHS (in $2)
%0:i32 = var
; (i32.sub(get_local $5)(i32.const 128))
%1 = sub %0, 128:i32
; (i32.add(get_local $3)(i32.const 128))
%2 = add %1, 128:i32
infer %2
-----------------------------------------------------------
; start LHS (in $_luaS_newlstr)
%0:i32 = var
%1:i32 = var
; (i32.xor(get_local $41)(get_local $2))
%2 = xor %0, %1
; (i32.shr_u(get_local $2)(i32.const 5))
%3 = lshr %1, 5:i32
; (i32.lt_u(get_local $5)(get_local $2))
%4 = ult %3, %1
-----------------------------------------------------------
; start LHS (in $_lua_settop)
%0:i32 = var
; (i32.le_s(get_local $1)(i32.const -1))
%1 = sle %0, -1:i32
%2:i32 = zext %1
infer %2
; RHS inferred successfully
%3:i32 = lshr %0, 31:i32
-----------------------------------------------------------
; Function: asm2wasm_lua_scimark.c.js.bc:lua_pcallk
%0:i32 = var
%1:i1 = eq 0:i32, %0
pc %1 0:i1
%2:i1 = slt 0:i32, %0
pc %2 0:i1
%3:i1 = slt %0, 4293966297:i32
pc %3 1:i1
%4:i1 = eq 4293966296:i32, %0
-----------------------------------------------------------
; start LHS (in $_od_ec_decode_cdf_q15)
%0:i32 = var
%1 = add %0, -1:i32
%2:i32 = var
%3 = xor %2, -1:i32
%4 = add %1, %3
infer %4
; RHS inferred successfully
-----------------------------------------------------------
; start LHS (in $free)
%0:i32 = var
; (i32.shl(get_local $1)(i32.const 3))
%1 = shl %0, 3:i32
; (i32.add(get_local $334)(i32.const 461288))
%2 = add %1, 461288:i32
; (i32.add(get_local $0)(i32.const 8))
%3 = add %2, 8:i32