From 41e17d370d67a584fbac9bbbe435c057c18715f4 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Fri, 27 Oct 2023 06:03:34 +0800 Subject: Make the exponent return value from frexp int (#3284) * Make the exponent return value from frexp int Fixes https://github.com/shader-slang/slang/issues/3282 * Update slang-llvm. --------- Co-authored-by: Yong He --- tests/bugs/frexp-double.slang | 27 +++++++++++++++++++++++++++ tests/bugs/frexp.slang | 26 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 tests/bugs/frexp-double.slang create mode 100644 tests/bugs/frexp.slang (limited to 'tests') diff --git a/tests/bugs/frexp-double.slang b/tests/bugs/frexp-double.slang new file mode 100644 index 000000000..1ad5a57e8 --- /dev/null +++ b/tests/bugs/frexp-double.slang @@ -0,0 +1,27 @@ +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -emit-spirv-directly -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cuda -output-using-type + +// BUF: type: int32_t +// BUF-NEXT: 1 +// BUF-NEXT: 6 +// BUF-NEXT: -1 +// BUF-NEXT: 0 + +// The values are: [1.0 42.75 0.25 0.0] +//TEST_INPUT:set inputBuffer = ubuffer(data=[0 1072693248 0 1078288384 0 1070596096 0 0], stride=4) +RWStructuredBuffer inputBuffer; + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(uint i : SV_GroupIndex) +{ + var exponent : int; + frexp(inputBuffer[i], exponent); + outputBuffer[i] = exponent; +} diff --git a/tests/bugs/frexp.slang b/tests/bugs/frexp.slang new file mode 100644 index 000000000..ea8f17411 --- /dev/null +++ b/tests/bugs/frexp.slang @@ -0,0 +1,26 @@ +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-dx12 -use-dxil -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cpu -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk -emit-spirv-directly -output-using-type +//TEST(smoke,compute):COMPARE_COMPUTE(filecheck-buffer=BUF):-cuda -output-using-type + +// BUF: type: int32_t +// BUF-NEXT: 1 +// BUF-NEXT: 6 +// BUF-NEXT: -1 +// BUF-NEXT: 0 + +//TEST_INPUT:set inputBuffer = ubuffer(data=[1.0 42.75 0.25 0.0], stride=4) +RWStructuredBuffer inputBuffer; + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(uint i : SV_GroupIndex) +{ + var exponent : int = 0; + frexp(inputBuffer[i], exponent); + outputBuffer[i] = exponent; +} -- cgit v1.2.3