Our builders for the most part only run on Haswell CPUs on Google Compute Engine.
A number of Go packages in the standard library and runtime use assembly to choose alternate paths depending on the capabilities of the processor.
I feel like we're not getting good test coverage, only testing the Haswell paths.
We do have a GOARCH=386 builder, though, which is at one extreme, but there are a number of steps in the middle untested.
Can we put an abstraction over CPUID etc somewhere (unexported) such that the builders can fake it before assembly code can?
/cc @ianlancetaylor @minux @adg
Our builders for the most part only run on Haswell CPUs on Google Compute Engine.
A number of Go packages in the standard library and runtime use assembly to choose alternate paths depending on the capabilities of the processor.
I feel like we're not getting good test coverage, only testing the Haswell paths.
We do have a GOARCH=386 builder, though, which is at one extreme, but there are a number of steps in the middle untested.
Can we put an abstraction over CPUID etc somewhere (unexported) such that the builders can fake it before assembly code can?
/cc @ianlancetaylor @minux @adg