Displaying 3 results from an estimated 3 matches for "multiplicationa".
Did you mean:
multiplication
2017 Jun 02
5
RFC: Killing undef and spreading poison
...}
}
==> (step 2) known bits analysis on sext to prove divisor is non-zero
i32 prod = x *nsw y
i64 prod.sext = sext prod to i64
i64 t = K `udiv` (-1 + (prod.sext >> 32))
for (...) {
if (condition){
use(t)
}
}
==> (step 3) commute sext through nsw multiplicationa
;; i32 prod = x *nsw y
i64 prod.sext = (sext x) *nsw (sext y)
i64 t = K `udiv` (-1 + (prod.sext >> 32))
for (...) {
if (condition){
use(t)
}
}
Now we've managed to introduce a fault if we were in case 1 -- the
source program was well defined but the targ...
2017 Jun 07
2
RFC: Killing undef and spreading poison
...-1 + (prod.sext >> 32)) use(t) } } ==>
(step 2) known bits analysis on sext to prove divisor is non-zero i32 prod =
x *nsw y i64 prod.sext = sext prod to i64 i64 t = K `udiv` (-1 + (prod.sext
>> 32)) for (...) { if (condition){ use(t) } } ==> (step 3) commute sext
through nsw multiplicationa ;; i32 prod = x *nsw y i64 prod.sext = (sext x)
*nsw (sext y) i64 t = K `udiv` (-1 + (prod.sext >> 32)) for (...) { if
(condition){ use(t) } } Now we've managed to introduce a fault if we were in
case 1 -- the source program was well defined but the target program divides
by zero.
_...
2016 Nov 11
2
RFC: Killing undef and spreading poison
Hi John,
John McCall wrote:
>> On Nov 10, 2016, at 10:37 PM, Sanjoy Das<sanjoy at playingwithpointers.com> wrote:
>> As a concrete example, say we have:
>>
>> i32 sum = x *nsw y
>> i64 sum.sext = sext sum to i64
>> ...
>> some use of sum.sext
>>
>>
>> Pretending "x +nsw 1" does not sign-overflow, we can commute the sext