From: Arnd Bergmann > Sent: 23 October 2020 14:23 > > On Fri, Oct 23, 2020 at 2:46 PM David Laight <David.Laight@xxxxxxxxxx> wrote: > > > > From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> > > > Sent: 22 October 2020 14:51 > > > > I've rammed the code into godbolt. > > > > https://godbolt.org/z/9v5PPW > > > > Definitely a clang bug. > > > > Search for [wx]24 in the clang output. > > nr_segs comes in as w2 and the initial bound checks are done on w2. > > w24 is loaded from w2 - I don't believe this changes the high bits. > > You believe wrong, "mov w24, w2" is a zero-extending operation. Ah ok, but gcc uses utxw for the same task. I guess they could be the same opcode. Last time I wrote ARM thumb didn't really exist - never mind 64bit David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)