blob: 88b669c1f63a1ba6cefc74ab869be2cd339922fe [file]
// asmcheck
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package codegen
//go:noinline
func use16(b []byte, x uint64) {
b[0] = byte(x)
}
//go:noinline
func resultSlotArray(x uint64) [16]byte {
var ret [16]byte
// amd64:-`.*\.ret\+`
use16(ret[:8], x)
// amd64:-`.*\.ret\+`
use16(ret[8:], x)
// amd64:-`.*\.ret\+` -`.*MOVUPS.*~r0`
return ret
}
//go:noinline
func resultSlotArrayMultipleReturns(x uint64, c bool) [16]byte {
var ret [16]byte
// amd64:-`.*\.ret\+`
use16(ret[:8], x)
if c {
// amd64:-`.*\.ret\+` -`.*MOVUPS.*~r0`
return ret
}
// amd64:-`.*\.ret\+`
use16(ret[8:], x)
// amd64:-`.*\.ret\+` -`.*MOVUPS.*~r0`
return ret
}
//go:noinline
func resultSlotPartialReturn(x uint64, c bool) [16]byte {
var ret [16]byte
// amd64:-`.*\.ret\+`
use16(ret[:8], x)
if c {
// amd64:-`.*\.ret\+` -`.*MOVUPS.*~r0`
return ret
}
return [16]byte{1}
}
//go:noinline
func resultSlotPartialReturnLocal(x uint64, c bool) [16]byte {
var ret [16]byte
// amd64:-`.*\.ret\+`
use16(ret[:8], x)
if c {
// amd64:-`.*\.ret\+` -`.*MOVUPS.*~r0`
return ret
}
other := [16]byte{1}
return other
}