2016-11-15 16:16:33 +00:00
|
|
|
package main
|
|
|
|
|
2017-07-20 19:04:00 +00:00
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"runtime"
|
|
|
|
)
|
2016-11-15 16:16:33 +00:00
|
|
|
|
2021-05-26 15:21:03 +00:00
|
|
|
func fputestsetup(f64a, f64b, f64c, f64d float64, f32a, f32b, f32c, f32d float32, avx2, avx512, dobreak bool)
|
2020-08-31 17:55:43 +00:00
|
|
|
func getCPUID70() (ebx, ecx uint32)
|
2016-11-15 16:16:33 +00:00
|
|
|
|
|
|
|
func main() {
|
|
|
|
var f64a float64 = 1.1
|
|
|
|
var f64b float64 = 1.2
|
|
|
|
var f64c float64 = 1.3
|
|
|
|
var f64d float64 = 1.4
|
|
|
|
var f32a float32 = 1.5
|
|
|
|
var f32b float32 = 1.6
|
|
|
|
var f32c float32 = 1.7
|
|
|
|
var f32d float32 = 1.8
|
|
|
|
|
2020-08-31 17:55:43 +00:00
|
|
|
ebx, _ := getCPUID70()
|
|
|
|
avx2 := ebx&(1<<5) != 0
|
|
|
|
avx512 := ebx&(1<<16) != 0
|
|
|
|
|
2021-05-26 15:21:03 +00:00
|
|
|
fputestsetup(f64a, f64b, f64c, f64d, f32a, f32b, f32c, f32d, avx2, avx512, len(os.Args) < 2 || os.Args[1] != "panic")
|
2017-07-20 19:04:00 +00:00
|
|
|
if len(os.Args) < 2 || os.Args[1] != "panic" {
|
|
|
|
runtime.Breakpoint()
|
|
|
|
} else {
|
2018-03-20 10:05:35 +00:00
|
|
|
panic("boom!")
|
2017-07-20 19:04:00 +00:00
|
|
|
}
|
2016-11-15 16:16:33 +00:00
|
|
|
}
|