https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104840
Bug ID: 104840 Summary: [nvptx] Can't set predicable attribute to true Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org Target Milestone: --- The nvptx port has: ... (define_attr "predicable" "false,true" (const_string "true")) ... and here and there: ... [(set_attr "predicable" "false")]) ... but when changing one of those to "true" I get: ... /home/vries/oacc/trunk/source-gcc/gcc/config/nvptx/nvptx.md:2273:1: unknown value `true' for attribute `ce_enabled' make[2]: *** [Makefile:2493: s-attrtab] Error 1 ... All the other ports seem to use no,yes instead: ... $ grep predicable gcc/config/*/*.md | grep define_attr gcc/config/arc/arc.md:(define_attr "predicable" "no,yes" (const_string "no")) gcc/config/arm/arm.md:(define_attr "predicable_short_it" "no,yes" (const_string "no")) gcc/config/arm/arm.md:(define_attr "predicable" "no,yes" (const_string "no")) gcc/config/c6x/c6x.md:(define_attr "predicable" "no,yes" gcc/config/ia64/ia64.md:(define_attr "predicable" "no,yes" (const_string "yes")) gcc/config/nvptx/nvptx.md:(define_attr "predicable" "false,true" ... In the documentation ( https://gcc.gnu.org/onlinedocs/gccint/Conditional-Execution.html ) we have: ... When define_cond_exec is used, an implicit reference to the predicable instruction attribute is made. See Insn Attributes. This attribute must be a boolean (i.e. have exactly two elements in its list-of-values), with the possible values being no and yes. ... So, it seems false,true is not allowed. Here though, a bit later on the same doc page we have wording that uses "true": ... For each define_insn for which the predicable attribute is true ...