1// run 2 3// Copyright 2018 The Go Authors. All rights reserved. 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file. 6 7package main 8 9// On 32-bit archs, one of the f fields of a [2]T 10// will be unaligned (address of 4 mod 8). 11// Make sure we can access the f fields successfully, 12// particularly for load-add combo instructions 13// introduced by CL 102036. 14type T struct { 15 pad uint32 16 f float64 17} 18 19//go:noinline 20func f(t, u *T) float64 { 21 return 3.0 + t.f + u.f 22} 23 24func main() { 25 t := [2]T{{0, 1.0}, {0, 2.0}} 26 sink = f(&t[0], &t[1]) 27} 28 29var sink float64 30