-
Michael Munday authored
A type conversion inserted between MOVD{LT,LE,GT,GE,EQ,NE} and CMPWconst by CL 36256 broke the rewrite rule designed to merge the two. This results in simple for loops (e.g. for i := 0; i < N; i++ {}) emitting two comparisons instead of one, plus a conditional move. This CL explicitly types the input to CMPWconst so that the type conversion can be omitted. It also adds a test to check that conditional moves aren't emitted for loops with 'less than' conditions (i.e. i < N) on s390x. Fixes #19227. Change-Id: Ia39e806ed723791c3c755951aef23f957828ea3e Reviewed-on: https://go-review.googlesource.com/37334Reviewed-by: Keith Randall <khr@golang.org>
4dbcb53d