Previously, the use of `enc_x86_64` emitted two 64-bit mode encodings for `scalar_to_vector.i64`, neither of which contained the REX.W bit telling `MOVD/MOVQ` to move 64 bits of data instead of 32 bits. Now, `scalar_to_vector.i64` will always use a sole 64-bit mode REX.W encoding and `scalar_to_vector` with other widths will have three encodings: a 32-bit mode move, a 64-bit mode move with no REX, and a 64-bit mode move with REX (but not REX.W).
15 lines
231 B
Plaintext
15 lines
231 B
Plaintext
test run
|
|
set enable_simd
|
|
target x86_64 skylake
|
|
|
|
function %splat_i64x2() -> b1 {
|
|
ebb0:
|
|
v0 = iconst.i64 -1
|
|
v1 = splat.i64x2 v0
|
|
v2 = vconst.i64x2 [-1 -1]
|
|
v3 = icmp eq v1, v2
|
|
v8 = vall_true v3
|
|
return v8
|
|
}
|
|
; run
|