On Tue, Mar 4, 2014 at 10:04 AM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote: > Hello Uroš, > On 04 Mar 01:13, Uros Bizjak wrote: >> On Tue, Mar 4, 2014 at 12:31 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >> > They are all: >> > >> > FAIL: gcc.target/i386/avx512pf-vscatterpf0dpd-1.c (test for excess errors) >> > Excess errors: >> > /ssd/uros/gcc-build/gcc/include/avx512pfintrin.h:108:3: error: the >> > last argument must be hint 0 or 1 >> > >> > They are due to _MM_HINT_ET0 fix, and probably show that the pattern >> > was not updated when hint constants were adjusted to 2 and 3. >> > >> > Kirill, can you please look at this inconsistency? >> >> Attached patch fixes these failures, and also fixes and improves error >> message. >> >> Uros. > >> Index: i386.c >> =================================================================== >> --- i386.c (revision 208296) >> +++ i386.c (working copy) >> @@ -36022,7 +36022,7 @@ addcarryx: >> >> if (!insn_data[icode].operand[4].predicate (op4, mode4)) >> { >> - error ("the last argument must be hint 0 or 1"); >> + error ("incorrect hint operand"); >> return const0_rtx; >> } >> >> Index: predicates.md >> =================================================================== >> --- predicates.md (revision 208295) >> +++ predicates.md (working copy) >> @@ -660,12 +660,12 @@ >> return i == 2 || i == 4 || i == 8; >> }) >> >> -;; Match 2, 3, 5, or 6 >> -(define_predicate "const2356_operand" >> +;; Match 2, 3, 6, or 7 >> +(define_predicate "const2367_operand" >> (match_code "const_int") >> { >> HOST_WIDE_INT i = INTVAL (op); >> - return i == 2 || i == 3 || i == 5 || i == 6; >> + return i == 2 || i == 3 || i == 6 || i == 7; >> }) > This will break `immediate' compatibility w/ ICC, since > ICC using ET0=5. > But as far as IMHO using immediates instead of literals > is ugly, I think this is minor issue.
I don't think this is an issue at all, as said earlier - builtins are considered internal implementation detail, published interface is in relevant *.h files (this is also why wrong error message was fixed). Uros.