[AVX512]: add default -sde- wrapexe to runtests.py for knl-avx512 target; float/double varying rounding
This commit is contained in:
@@ -119,12 +119,44 @@ declare double @__round_uniform_double(double) nounwind readnone
|
|||||||
declare double @__floor_uniform_double(double) nounwind readnone
|
declare double @__floor_uniform_double(double) nounwind readnone
|
||||||
declare double @__ceil_uniform_double(double) nounwind readnone
|
declare double @__ceil_uniform_double(double) nounwind readnone
|
||||||
|
|
||||||
declare <WIDTH x float> @__round_varying_float(<WIDTH x float>) nounwind readnone
|
|
||||||
declare <WIDTH x float> @__floor_varying_float(<WIDTH x float>) nounwind readnone
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
declare <WIDTH x float> @__ceil_varying_float(<WIDTH x float>) nounwind readnone
|
;; rounding floats
|
||||||
declare <WIDTH x double> @__round_varying_double(<WIDTH x double>) nounwind readnone
|
|
||||||
declare <WIDTH x double> @__floor_varying_double(<WIDTH x double>) nounwind readnone
|
declare <8 x float> @llvm.x86.avx.round.ps.256(<8 x float>, i32) nounwind readnone
|
||||||
declare <WIDTH x double> @__ceil_varying_double(<WIDTH x double>) nounwind readnone
|
define <16 x float> @__round_varying_float(<16 x float>) nounwind readonly alwaysinline {
|
||||||
|
; roundps, round mode nearest 0b00 | don't signal precision exceptions 0b1000 = 8
|
||||||
|
round8to16(%0, 8)
|
||||||
|
}
|
||||||
|
|
||||||
|
define <16 x float> @__floor_varying_float(<16 x float>) nounwind readonly alwaysinline {
|
||||||
|
; roundps, round down 0b01 | don't signal precision exceptions 0b1001 = 9
|
||||||
|
round8to16(%0, 9)
|
||||||
|
}
|
||||||
|
|
||||||
|
define <16 x float> @__ceil_varying_float(<16 x float>) nounwind readonly alwaysinline {
|
||||||
|
; roundps, round up 0b10 | don't signal precision exceptions 0b1010 = 10
|
||||||
|
round8to16(%0, 10)
|
||||||
|
}
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; rounding doubles
|
||||||
|
|
||||||
|
declare <4 x double> @llvm.x86.avx.round.pd.256(<4 x double>, i32) nounwind readnone
|
||||||
|
define <16 x double> @__round_varying_double(<16 x double>) nounwind readonly alwaysinline {
|
||||||
|
round4to16double(%0, 8)
|
||||||
|
}
|
||||||
|
|
||||||
|
define <16 x double> @__floor_varying_double(<16 x double>) nounwind readonly alwaysinline {
|
||||||
|
round4to16double(%0, 9)
|
||||||
|
}
|
||||||
|
|
||||||
|
define <16 x double> @__ceil_varying_double(<16 x double>) nounwind readonly alwaysinline {
|
||||||
|
round4to16double(%0, 10)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; min/max
|
;; min/max
|
||||||
|
|
||||||
|
|||||||
@@ -555,7 +555,7 @@ def verify():
|
|||||||
"sse4-i8x16", "avx1-i32x4" "avx1-i32x8", "avx1-i32x16", "avx1-i64x4", "avx1.1-i32x8",
|
"sse4-i8x16", "avx1-i32x4" "avx1-i32x8", "avx1-i32x16", "avx1-i64x4", "avx1.1-i32x8",
|
||||||
"avx1.1-i32x16", "avx1.1-i64x4", "avx2-i32x8", "avx2-i32x16", "avx2-i64x4",
|
"avx1.1-i32x16", "avx1.1-i64x4", "avx2-i32x8", "avx2-i32x16", "avx2-i64x4",
|
||||||
"generic-1", "generic-4", "generic-8",
|
"generic-1", "generic-4", "generic-8",
|
||||||
"generic-16", "generic-32", "generic-64", "knc", "knl"]]
|
"generic-16", "generic-32", "generic-64", "knc", "knl", "knl-avx512"]]
|
||||||
for i in range (0,len(f_lines)):
|
for i in range (0,len(f_lines)):
|
||||||
if f_lines[i][0] == "%":
|
if f_lines[i][0] == "%":
|
||||||
continue
|
continue
|
||||||
@@ -692,6 +692,9 @@ def run_tests(options1, args, print_version):
|
|||||||
ispc_root = "."
|
ispc_root = "."
|
||||||
|
|
||||||
# checks the required environment otherwise prints an error message
|
# checks the required environment otherwise prints an error message
|
||||||
|
if ((options.target == "knl-avx512") and (options.wrapexe == "")):
|
||||||
|
options.wrapexe = "sde -knl -- "
|
||||||
|
|
||||||
if (options.target == "knc"):
|
if (options.target == "knc"):
|
||||||
options.wrapexe = "micnativeloadex"
|
options.wrapexe = "micnativeloadex"
|
||||||
PATH_dir = string.split(os.getenv("PATH"), os.pathsep)
|
PATH_dir = string.split(os.getenv("PATH"), os.pathsep)
|
||||||
|
|||||||
Reference in New Issue
Block a user