On Sun, Jun 06, 2021 at 03:26:16PM -0500, Segher Boessenkool wrote: > On Sun, Jun 06, 2021 at 01:11:53PM -0700, Linus Torvalds wrote: > > We are very used to just making the compiler generate the code we > > need. That is, fundamentally, what any use of inline asm is all about. > > We want the compiler to generate all the common cases and all the > > regular instructions. > > > > The conditional branch itself - and the instructions leading up to it > > - are exactly those "common regular instructions" that we'd want the > > compiler to generate. That is in fact more true here than for most > > inline asm, exactly because there are so many different possible > > combinations of conditional branches (equal, not equal, less than,..) > > and so many ways to generate the code that generates the condition. > > > > So we are much better off letting the compiler do all that for us - > > it's very much what the compiler is good at. > > Yes, exactly. > > I am saying that if you depend on that some C code you write will result > in some particular machine code, without actually *forcing* the compiler > to output that exact machine code, then you will be disappointed. Maybe > not today, and maybe it will take years, if you are lucky. > > (s/forcing/instructing/ of course, compilers have feelings too!) And hence the request for a language extension. Both compilers have a vast array of language extensions that are outside of the C spec (thank you!), so can we please get one more?