craneleft: cancel ineg when args to imul (#6053)
* craneleft: cancel `ineg`/`iabs` when args to `imul` * Remove unsound `iabs(x) * iabs(y) == x*y` rewrite
This commit is contained in:
@@ -232,6 +232,16 @@ block0(v0: i32):
|
||||
; check: return v0
|
||||
}
|
||||
|
||||
function %imul_ineg_cancel(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = ineg v0
|
||||
v3 = ineg v1
|
||||
v4 = imul v2, v3
|
||||
return v4
|
||||
; check: v5 = imul v0, v1
|
||||
; check: return v5
|
||||
}
|
||||
|
||||
function %isub_self(i32) -> i32 {
|
||||
block0(v0: i32):
|
||||
v1 = isub v0, v0
|
||||
|
||||
Reference in New Issue
Block a user