| // asmcheck |
| |
| // Copyright 2025 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 |
| |
| type tile1 struct { |
| a uint16 |
| b uint16 |
| c uint32 |
| } |
| |
| func store_tile1(t *tile1) { |
| // amd64:`MOVQ` |
| t.a, t.b, t.c = 1, 1, 1 |
| } |
| |
| type tile2 struct { |
| a, b, c, d, e int8 |
| } |
| |
| func store_tile2(t *tile2) { |
| // amd64:`MOVW` |
| t.a, t.b = 1, 1 |
| // amd64:`MOVW` |
| t.d, t.e = 1, 1 |
| } |
| |
| type tile3 struct { |
| a, b uint8 |
| c uint16 |
| } |
| |
| func store_shifted(t *tile3, x uint32) { |
| // amd64:`MOVL` |
| // ppc64:`MOVHBR` |
| t.a = uint8(x) |
| t.b = uint8(x >> 8) |
| t.c = uint16(x >> 16) |
| } |
| |
| func store_const(t *tile3) { |
| // 0x00030201 |
| // amd64:`MOVL\s\$197121` |
| // 0x01020003 |
| // ppc64:`MOVD\s\$16908291` |
| t.a, t.b, t.c = 1, 2, 3 |
| } |