Open
Description
export fn foo(vec: @Vector(8, u64)) @Vector(8, u64) {
return -%((vec << @splat(63)) >> @splat(63));
}
Gives:
.LCPI0_0:
.quad 1
foo:
vpandq zmm0, zmm0, qword ptr [rip + .LCPI0_0]{1to8}
vpxor xmm1, xmm1, xmm1
vpsubq zmm0, zmm1, zmm0
ret
Should be:
foo:
vpsllq zmm0, zmm0, 63
vpsraq zmm0, zmm0, 63
ret