On Tue, Sep 27, 2016 at 09:29:10PM +0200, Florian Weimer wrote: > * Marek Polacek: > > > On Tue, Sep 27, 2016 at 08:58:59PM +0200, Florian Weimer wrote: > >> * Marek Polacek: > >> > >> > @@ -11498,21 +11508,23 @@ > >> > case V64QImode: > >> > case V32HImode: > >> > if (TARGET_AVX512F) > >> > - { > >> > - tmp = "p<logic>"; > >> > - ssesuffix = "q"; > >> > - break; > >> > - } > >> > + { > >> > + tmp = "p<logic>"; > >> > + ssesuffix = "q"; > >> > + break; > >> > + } > >> > + /* FALLTHRU */ > >> > case V32QImode: > >> > case V16HImode: > >> > case V16QImode: > >> > case V8HImode: > >> > if (TARGET_AVX512VL || TARGET_AVX2 || TARGET_SSE2) > >> > - { > >> > - tmp = "p<logic>"; > >> > - ssesuffix = TARGET_AVX512VL ? "q" : ""; > >> > - break; > >> > - } > >> > + { > >> > + tmp = "p<logic>"; > >> > + ssesuffix = TARGET_AVX512VL ? "q" : ""; > >> > + break; > >> > + } > >> > + /* FALLTHRU */ > >> > default: > >> > gcc_unreachable (); > >> > } > >> > >> Why isn't this a bug? Wouldn't we want to reach gcc_unreachable () > >> if, for example !TARGET_AVX512F and TARGET_SSE2? > > > > ?? In that case the FALLTHRU should be there if it's intentional that > > we may fall through to default. Otherwise not sure what you mean. > > Not sure if I read this code correctly, but if we fall through from > V32HImode, and we have TARGET_SSE2 set, we execute this code: > > tmp = "p<logic>"; > ssesuffix = TARGET_AVX512VL ? "q" : ""; > > And not gcc_unreachable (), as is probably intended.
Kyrill, can you please decide? Thanks. Marek