[llvm] r232046 - [X86] Fix wrong target specific combine on SETCC nodes.
Andrea Di Biagio
andrea.dibiagio at gmail.com
Thu Mar 12 09:48:44 PDT 2015
Yes. It affects 3.6 as well.
That said, I expect this bug to only occur in very rare cases.
It was only spotted by one of our randomly generated tests.
P.s.: The original reproducible looked like this:
///
typedef int int4 __attribute__((vector_size(16)));
__attribute__((noinline))
int foo(int4 A, int4 B) {
int4 Zero = (int4){0,0,0,0};
int4 C = A < B;
int4 D = C > Zero;
return D[1];
}
int main() {
int4 A = (int4){1,1,1,1};
int4 B = (int4){1,1,1,1};
printf("%d\n", foo(A, B);
return 0;
}
////
At -O0 it was printing out the value 0.
At -O2 it was printing out the value -1.
On Thu, Mar 12, 2015 at 4:24 PM, Joerg Sonnenberger
<joerg at britannica.bec.de> wrote:
> On Thu, Mar 12, 2015 at 03:16:58PM -0000, Andrea Di Biagio wrote:
>> Author: adibiagio
>> Date: Thu Mar 12 10:16:58 2015
>> New Revision: 232046
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=232046&view=rev
>> Log:
>> [X86] Fix wrong target specific combine on SETCC nodes.
>
> Does this apply to 3.6, too?
>
> Joerg
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list