}
// amd64:"CMOVQLT"
// arm64:"CSEL\tLT"
- // ppc64:"ISEL\t[$]0"
- // ppc64le:"ISEL\t[$]0"
+ // ppc64x:"ISEL\t[$]0"
// wasm:"Select"
return x
}
}
// amd64:"CMOVQNE"
// arm64:"CSEL\tNE"
- // ppc64:"ISEL\t[$]2"
- // ppc64le:"ISEL\t[$]2"
+ // ppc64x:"ISEL\t[$]2"
// wasm:"Select"
return x
}
}
// amd64:"CMOVQ(HI|CS)"
// arm64:"CSNEG\tLS"
- // ppc64:"ISEL\t[$]1"
- // ppc64le:"ISEL\t[$]1"
+ // ppc64x:"ISEL\t[$]1"
// wasm:"Select"
return x
}
}
// amd64:"CMOVL(HI|CS)"
// arm64:"CSNEG\t(LS|HS)"
- // ppc64:"ISEL\t[$]1"
- // ppc64le:"ISEL\t[$]1"
+ // ppc64x:"ISEL\t[$]1"
// wasm:"Select"
return x
}
}
// amd64:"CMOVW(HI|CS)"
// arm64:"CSNEG\t(LS|HS)"
- // ppc64:"ISEL\t[$]0"
- // ppc64le:"ISEL\t[$]0"
+ // ppc64x:"ISEL\t[$]0"
// wasm:"Select"
return x
}
}
// amd64:"CMOVQNE","CMOVQPC"
// arm64:"CSEL\tEQ"
- // ppc64:"ISEL\t[$]2"
- // ppc64le:"ISEL\t[$]2"
+ // ppc64x:"ISEL\t[$]2"
// wasm:"Select"
return a
}
}
// amd64:"CMOVQNE","CMOVQPS"
// arm64:"CSEL\tNE"
- // ppc64:"ISEL\t[$]2"
- // ppc64le:"ISEL\t[$]2"
+ // ppc64x:"ISEL\t[$]2"
// wasm:"Select"
return a
}
}
// amd64:"CMOVQHI"
// arm64:"CSEL\tMI"
- // ppc64:"ISEL\t[$]0"
- // ppc64le:"ISEL\t[$]0"
+ // ppc64x:"ISEL\t[$]0"
// wasm:"Select"
r = r - ldexp(y, rexp-yexp)
}
}
// amd64:"CMOVQNE"
// arm64:"CSEL\tNE"
- // ppc64:"ISEL\t[$]2"
- // ppc64le:"ISEL\t[$]2"
+ // ppc64x:"ISEL\t[$]2"
// wasm:"Select"
return y
}
}
// amd64:"CMOVQEQ"
// arm64:"CSEL\tEQ"
- // ppc64:"ISEL\t[$]2"
- // ppc64le:"ISEL\t[$]2"
+ // ppc64x:"ISEL\t[$]2"
// wasm:"Select"
return a
}
-// Floating point CMOVs are not supported by amd64/arm64/ppc64/ppc64le
+// Floating point CMOVs are not supported by amd64/arm64/ppc64x
func cmovfloatmove(x, y int) float64 {
a := 1.0
if x <= y {
}
// amd64:-"CMOV"
// arm64:-"CSEL"
- // ppc64:-"ISEL"
- // ppc64le:-"ISEL"
+ // ppc64x:-"ISEL"
// wasm:-"Select"
return a
}
if a == b {
x = a
}
- // ppc64:"ISEL\t[$]2, R[0-9]+, R0, R[0-9]+"
- // ppc64le:"ISEL\t[$]2, R[0-9]+, R0, R[0-9]+"
+ // ppc64x:"ISEL\t[$]2, R[0-9]+, R0, R[0-9]+"
return x
}
if a == b {
x = 0
}
- // ppc64:"ISEL\t[$]2, R0, R[0-9]+, R[0-9]+"
- // ppc64le:"ISEL\t[$]2, R0, R[0-9]+, R[0-9]+"
+ // ppc64x:"ISEL\t[$]2, R0, R[0-9]+, R[0-9]+"
return x
}
"mips64": {"GOMIPS64", "hardfloat", "softfloat"},
"ppc64": {"GOPPC64", "power8", "power9"},
"ppc64le": {"GOPPC64", "power8", "power9"},
+ "ppc64x": {}, // A pseudo-arch representing both ppc64 and ppc64le
"s390x": {},
"wasm": {},
"riscv64": {},
// Create the build environments corresponding the above specifiers
envs := make([]buildEnv, 0, 4)
- if subarch != "" {
- envs = append(envs, buildEnv(os+"/"+arch+"/"+subarch))
- } else {
- subarchs := archVariants[arch]
- if len(subarchs) == 0 {
- envs = append(envs, buildEnv(os+"/"+arch+"/"))
+ arches := []string{arch}
+ // ppc64x is a pseudo-arch, generate tests for both endian variants.
+ if arch == "ppc64x" {
+ arches = []string{"ppc64", "ppc64le"}
+ }
+ for _, arch := range arches {
+ if subarch != "" {
+ envs = append(envs, buildEnv(os+"/"+arch+"/"+subarch))
} else {
- for _, sa := range archVariants[arch][1:] {
- envs = append(envs, buildEnv(os+"/"+arch+"/"+sa))
+ subarchs := archVariants[arch]
+ if len(subarchs) == 0 {
+ envs = append(envs, buildEnv(os+"/"+arch+"/"))
+ } else {
+ for _, sa := range archVariants[arch][1:] {
+ envs = append(envs, buildEnv(os+"/"+arch+"/"+sa))
+ }
}
}
}