go/test/intrinsic_atomic.go
Cherry Zhang 8ff4260777 cmd/compile: intrinsify Ctz, Bswap on ARM
Atomic ops on ARM are implemented with kernel calls, so they are
not intrinsified.

Change-Id: I0e7cc2e5526ae1a3d24b4b89be1bd13db071f8ef
Reviewed-on: https://go-review.googlesource.com/28977
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
2016-09-12 19:26:31 +00:00

21 lines
743 B
Go

// errorcheck -0 -d=ssa/intrinsics/debug
// +build amd64 arm64
// Copyright 2016 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 main
import "sync/atomic"
var x uint32
func atomics() {
_ = atomic.LoadUint32(&x) // ERROR "intrinsic substitution for LoadUint32"
atomic.StoreUint32(&x, 1) // ERROR "intrinsic substitution for StoreUint32"
atomic.AddUint32(&x, 1) // ERROR "intrinsic substitution for AddUint32"
atomic.SwapUint32(&x, 1) // ERROR "intrinsic substitution for SwapUint32"
atomic.CompareAndSwapUint32(&x, 1, 2) // ERROR "intrinsic substitution for CompareAndSwapUint32"
}