Displaying 3 results from an estimated 3 matches for "clear5".
Did you mean:
clear
2016 Dec 22
2
struct bitfield regression between 3.6 and 3.9 (using -O0)
...whole value in r0 (an 8-bit value) against 1. If we insert a
logical AND with '1' to mask r0 just prior to the compare it works fine.
And as it turns out, we see that *and* in the LLVM IR generated using -O0
and -emit-llvm has the AND included:
...
%bf.lshr = lshr i8 %bf.load4, 1
* %bf.clear5 = and i8 %bf.lshr, 1*
%bf.cast = zext i8 %bf.clear5 to i32
%cmp = icmp eq i32 %bf.cast, 1
br i1 %cmp, label %if.then, label %if.else
(compiled with: clang -O0 -emit-llvm -S failing.c -o failing.ll )
I reran passing -debug to llc to see what's happening at various stages of
DAG optimiza...
2016 Dec 22
0
struct bitfield regression between 3.6 and 3.9 (using -O0)
...1. If we
> insert a logical AND with '1' to mask r0 just prior to the compare it
> works fine.
>
> And as it turns out, we see that *and* in the LLVM IR generated using
> -O0 and -emit-llvm has the AND included:
> ...
> %bf.lshr = lshr i8 %bf.load4, 1
> * %bf.clear5 = and i8 %bf.lshr, 1*
> %bf.cast = zext i8 %bf.clear5 to i32
> %cmp = icmp eq i32 %bf.cast, 1
> br i1 %cmp, label %if.then, label %if.else
>
> (compiled with: clang -O0 -emit-llvm -S failing.c -o failing.ll )
>
> I reran passing -debug to llc to see what's happening...
2016 Dec 23
2
struct bitfield regression between 3.6 and 3.9 (using -O0)
...against 1. If we insert a
> logical AND with '1' to mask r0 just prior to the compare it works fine.
>
> And as it turns out, we see that *and* in the LLVM IR generated using -O0
> and -emit-llvm has the AND included:
> ...
> %bf.lshr = lshr i8 %bf.load4, 1
> * %bf.clear5 = and i8 %bf.lshr, 1*
> %bf.cast = zext i8 %bf.clear5 to i32
> %cmp = icmp eq i32 %bf.cast, 1
> br i1 %cmp, label %if.then, label %if.else
>
> (compiled with: clang -O0 -emit-llvm -S failing.c -o failing.ll )
>
> I reran passing -debug to llc to see what's happening...