Hi Adrian, On 3/3/26 21:38, John Paul Adrian Glaubitz wrote:
Hi Kalvis, On Tue, 2026-03-03 at 20:24 +1100, Kalvis Duckmanton wrote:On 3/3/26 18:05, John Paul Adrian Glaubitz wrote:Hi Kalvis, On Tue, 2026-03-03 at 16:20 +1100, Kalvis Duckmanton wrote:I'm not sure that I understand why the 'earlyclobber' constraint is applied to the output operand of '*extzv_aligned_2'. If I remove the 'earlyclobber' constraint, GCC 12.5.0 compiles both the reduced test case and the original 'toke.i' without incident. (Also the NetBSD distribution, but it did that before.)I'm not sure whether it makes much sense to debug the problem in detail, as interesting as it sounds, when you confirm the issue is not present in GCC 14.I couldn't reproduce the problem with the same input. I do suspect that it is still there in GCC 14, but I'm not sure how to expose it (other than by compiling GCC or Perl or something of that sort and seeing what happens).There were many improvements in the vax backend which is why I think that chances are the issue was actually fixed. Did you check the GCC commit history whether there is a related change?
My suspicion is based upon the observation that the constraints on '*extzv_aligned' are the same in GCC 15 and GCC 14 (and GCC 12). I agree that there is some change which is preventing this problem from reappearing in GCC 14.
I haven't checked the GCC history between version 12 and version 14 yet; I will check as suggested :)
thanks, kalvis