// asmcheck

// Copyright 2018 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

// These tests check that mapaccess calls are not used.
// Issues #23661 and #24364.

func mapCompoundAssignmentInt8() {
	m := make(map[int8]int8, 0)
	var k int8 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] += 67

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] -= 123

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] *= 45

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] |= 78

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] ^= 89

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] <<= 9

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] >>= 10

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]++

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]--
}

func mapCompoundAssignmentInt32() {
	m := make(map[int32]int32, 0)
	var k int32 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] += 67890

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] -= 123

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] *= 456

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] |= 78

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] ^= 89

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] <<= 9

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] >>= 10

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]++

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]--
}

func mapCompoundAssignmentInt64() {
	m := make(map[int64]int64, 0)
	var k int64 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] += 67890

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] -= 123

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] *= 456

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] |= 78

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] ^= 89

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] <<= 9

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] >>= 10

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]++

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]--
}

func mapCompoundAssignmentComplex128() {
	m := make(map[complex128]complex128, 0)
	var k complex128 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] += 67890

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] -= 123

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] *= 456

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]++

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k]--
}

func mapCompoundAssignmentString() {
	m := make(map[string]string, 0)
	var k string = "key"

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] += "value"
}

var sinkAppend bool

// TODO: optimization is not applied because of mapslow flag.
func mapAppendAssignmentInt8() {
	m := make(map[int8][]int8, 0)
	var k int8 = 0

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], 1)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], 1, 2, 3)

	a := []int8{7, 8, 9, 0}

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], a...)

	// Exceptions

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(a, m[k]...)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	sinkAppend, m[k] = !sinkAppend, append(m[k], 99)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k+1], 100)
}

func mapAppendAssignmentInt32() {
	m := make(map[int32][]int32, 0)
	var k int32 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], 1)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], 1, 2, 3)

	a := []int32{7, 8, 9, 0}

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], a...)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k+1] = append(m[k+1], a...)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[-k] = append(m[-k], a...)

	// Exceptions

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(a, m[k]...)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	sinkAppend, m[k] = !sinkAppend, append(m[k], 99)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k+1], 100)
}

func mapAppendAssignmentInt64() {
	m := make(map[int64][]int64, 0)
	var k int64 = 0

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], 1)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], 1, 2, 3)

	a := []int64{7, 8, 9, 0}

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], a...)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k+1] = append(m[k+1], a...)

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[-k] = append(m[-k], a...)

	// Exceptions

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(a, m[k]...)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	sinkAppend, m[k] = !sinkAppend, append(m[k], 99)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k+1], 100)
}

// TODO: optimization is not applied because of mapslow flag.
func mapAppendAssignmentComplex128() {
	m := make(map[complex128][]complex128, 0)
	var k complex128 = 0

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], 1)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], 1, 2, 3)

	a := []complex128{7, 8, 9, 0}

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k], a...)

	// Exceptions

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(a, m[k]...)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	sinkAppend, m[k] = !sinkAppend, append(m[k], 99)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k+1], 100)
}

func mapAppendAssignmentString() {
	m := make(map[string][]string, 0)
	var k string = "key"

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], "1")

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], "1", "2", "3")

	a := []string{"7", "8", "9", "0"}

	// 386:-".*mapaccess"
	// amd64:-".*mapaccess"
	// arm:-".*mapaccess"
	// arm64:-".*mapaccess"
	m[k] = append(m[k], a...)

	// Exceptions

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(a, m[k]...)

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	sinkAppend, m[k] = !sinkAppend, append(m[k], "99")

	// 386:".*mapaccess"
	// amd64:".*mapaccess"
	// arm:".*mapaccess"
	// arm64:".*mapaccess"
	m[k] = append(m[k+"1"], "100")
}
