http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50762
--- Comment #22 from Uros Bizjak <ubizjak at gmail dot com> 2011-11-10 19:05:29 UTC --- (In reply to comment #21) > But this is not quite true either. genpreds will *omit* generation of > the explicit test (mode == VOIDmode || mode == GET_MODE (op)) if the > predicate has as a sub-test a call to one of the standard predicates, > arguing that "the standard predicate already did the test, so we don't > have to repeat it". But the test performed by the standard predicates > *does* comply with the more elaborate rule spelled out in the docs ... Yeah, this is also what I thought at the first sight. But please don't forget that additional c-code test effectively creates (and (match_operand (...) (match_test (call to c-code))) and this construct will _always_ force generation of mode checks.