Commit 86e49d17 by Rex Xu

HLSL: Move frexp() to a separate test file.

parent aa3c64c2
hlsl.intrinsic.frexp.vert
Shader version: 450
0:? Sequence
0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float)
0:2 Function Parameters:
0:2 'inF0' ( in float)
0:2 'inF1' ( in float)
0:? Sequence
0:3 frexp ( temp float)
0:3 'inF0' ( in float)
0:3 'inF1' ( in float)
0:4 Branch: Return with expression
0:4 Constant:
0:4 0.000000
0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float)
0:8 Function Parameters:
0:8 'inF0' ( in 2-component vector of float)
0:8 'inF1' ( in 2-component vector of float)
0:? Sequence
0:9 frexp ( temp 2-component vector of float)
0:9 'inF0' ( in 2-component vector of float)
0:9 'inF1' ( in 2-component vector of float)
0:10 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float)
0:14 Function Parameters:
0:14 'inF0' ( in 3-component vector of float)
0:14 'inF1' ( in 3-component vector of float)
0:? Sequence
0:15 frexp ( temp 3-component vector of float)
0:15 'inF0' ( in 3-component vector of float)
0:15 'inF1' ( in 3-component vector of float)
0:16 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'inF0' ( in 4-component vector of float)
0:20 'inF1' ( in 4-component vector of float)
0:? Sequence
0:21 frexp ( temp 4-component vector of float)
0:21 'inF0' ( in 4-component vector of float)
0:21 'inF1' ( in 4-component vector of float)
0:22 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:? Linker Objects
Linked vertex stage:
WARNING: Linking vertex stage: Entry point not found
Shader version: 450
0:? Sequence
0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float)
0:2 Function Parameters:
0:2 'inF0' ( in float)
0:2 'inF1' ( in float)
0:? Sequence
0:3 frexp ( temp float)
0:3 'inF0' ( in float)
0:3 'inF1' ( in float)
0:4 Branch: Return with expression
0:4 Constant:
0:4 0.000000
0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float)
0:8 Function Parameters:
0:8 'inF0' ( in 2-component vector of float)
0:8 'inF1' ( in 2-component vector of float)
0:? Sequence
0:9 frexp ( temp 2-component vector of float)
0:9 'inF0' ( in 2-component vector of float)
0:9 'inF1' ( in 2-component vector of float)
0:10 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float)
0:14 Function Parameters:
0:14 'inF0' ( in 3-component vector of float)
0:14 'inF1' ( in 3-component vector of float)
0:? Sequence
0:15 frexp ( temp 3-component vector of float)
0:15 'inF0' ( in 3-component vector of float)
0:15 'inF1' ( in 3-component vector of float)
0:16 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'inF0' ( in 4-component vector of float)
0:20 'inF1' ( in 4-component vector of float)
0:? Sequence
0:21 frexp ( temp 4-component vector of float)
0:21 'inF0' ( in 4-component vector of float)
0:21 'inF1' ( in 4-component vector of float)
0:22 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 74
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "VertexShaderFunction"
Name 4 "VertexShaderFunction"
Name 11 "VertexShaderFunctionS(f1;f1;"
Name 9 "inF0"
Name 10 "inF1"
Name 18 "VertexShaderFunction2(vf2;vf2;"
Name 16 "inF0"
Name 17 "inF1"
Name 25 "VertexShaderFunction3(vf3;vf3;"
Name 23 "inF0"
Name 24 "inF1"
Name 32 "VertexShaderFunction4(vf4;vf4;"
Name 30 "inF0"
Name 31 "inF1"
Name 36 "ResType"
Name 45 "ResType"
Name 56 "ResType"
Name 66 "ResType"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
8: TypeFunction 6(float) 7(ptr) 7(ptr)
13: TypeVector 6(float) 2
14: TypePointer Function 13(fvec2)
15: TypeFunction 13(fvec2) 14(ptr) 14(ptr)
20: TypeVector 6(float) 3
21: TypePointer Function 20(fvec3)
22: TypeFunction 20(fvec3) 21(ptr) 21(ptr)
27: TypeVector 6(float) 4
28: TypePointer Function 27(fvec4)
29: TypeFunction 27(fvec4) 28(ptr) 28(ptr)
35: TypeInt 32 1
36(ResType): TypeStruct 6(float) 35(int)
40: 6(float) Constant 0
44: TypeVector 35(int) 2
45(ResType): TypeStruct 13(fvec2) 44(ivec2)
49: 6(float) Constant 1065353216
50: 6(float) Constant 1073741824
51: 13(fvec2) ConstantComposite 49 50
55: TypeVector 35(int) 3
56(ResType): TypeStruct 20(fvec3) 55(ivec3)
60: 6(float) Constant 1077936128
61: 20(fvec3) ConstantComposite 49 50 60
65: TypeVector 35(int) 4
66(ResType): TypeStruct 27(fvec4) 65(ivec4)
70: 6(float) Constant 1082130432
71: 27(fvec4) ConstantComposite 49 50 60 70
4(VertexShaderFunction): 2 Function None 3
5: Label
Return
FunctionEnd
11(VertexShaderFunctionS(f1;f1;): 6(float) Function None 8
9(inF0): 7(ptr) FunctionParameter
10(inF1): 7(ptr) FunctionParameter
12: Label
34: 6(float) Load 9(inF0)
37: 36(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 34
38: 35(int) CompositeExtract 37 1
Store 10(inF1) 38
39: 6(float) CompositeExtract 37 0
ReturnValue 40
FunctionEnd
18(VertexShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15
16(inF0): 14(ptr) FunctionParameter
17(inF1): 14(ptr) FunctionParameter
19: Label
43: 13(fvec2) Load 16(inF0)
46: 45(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 43
47: 44(ivec2) CompositeExtract 46 1
Store 17(inF1) 47
48: 13(fvec2) CompositeExtract 46 0
ReturnValue 51
FunctionEnd
25(VertexShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22
23(inF0): 21(ptr) FunctionParameter
24(inF1): 21(ptr) FunctionParameter
26: Label
54: 20(fvec3) Load 23(inF0)
57: 56(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 54
58: 55(ivec3) CompositeExtract 57 1
Store 24(inF1) 58
59: 20(fvec3) CompositeExtract 57 0
ReturnValue 61
FunctionEnd
32(VertexShaderFunction4(vf4;vf4;): 27(fvec4) Function None 29
30(inF0): 28(ptr) FunctionParameter
31(inF1): 28(ptr) FunctionParameter
33: Label
64: 27(fvec4) Load 30(inF0)
67: 66(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 64
68: 65(ivec4) CompositeExtract 67 1
Store 31(inF1) 68
69: 27(fvec4) CompositeExtract 67 0
ReturnValue 71
FunctionEnd
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
float PixelShaderFunctionS(float inF0, float inF1)
{
float r000 = frexp(inF0, inF1);
return 0.0;
}
float2 PixelShaderFunction2(float2 inF0, float2 inF1)
{
float2 r000 = frexp(inF0, inF1);
return float2(1,2);
}
float3 PixelShaderFunction3(float3 inF0, float3 inF1)
{
float3 r000 = frexp(inF0, inF1);
return float3(1,2,3);
}
float4 PixelShaderFunction(float4 inF0, float4 inF1)
{
float4 r000 = frexp(inF0, inF1);
return float4(1,2,3,4);
}
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
#define MATFNS(MT) \
MT r000 = frexp(inF0, inF1);
struct PS_OUTPUT { float4 color : SV_Target0; };
PS_OUTPUT main()
{
PS_OUTPUT ps_output;
ps_output.color = 1.0;
return ps_output;
};
float VertexShaderFunctionS(float inF0, float inF1)
{
frexp(inF0, inF1);
return 0.0;
}
float2 VertexShaderFunction2(float2 inF0, float2 inF1)
{
frexp(inF0, inF1);
return float2(1,2);
}
float3 VertexShaderFunction3(float3 inF0, float3 inF1)
{
frexp(inF0, inF1);
return float3(1,2,3);
}
float4 VertexShaderFunction4(float4 inF0, float4 inF1)
{
frexp(inF0, inF1);
return float4(1,2,3,4);
}
// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
#define MATFNS() \
frexp(inF0, inF1);
...@@ -52,7 +52,6 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i ...@@ -52,7 +52,6 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
float r033 = fmod(inF0, inF1); float r033 = fmod(inF0, inF1);
float r034 = frac(inF0); float r034 = frac(inF0);
float r035 = frexp(inF0, inF1);
float r036 = fwidth(inF0); float r036 = fwidth(inF0);
bool r037 = isinf(inF0); bool r037 = isinf(inF0);
bool r038 = isnan(inF0); bool r038 = isnan(inF0);
...@@ -136,7 +135,6 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u ...@@ -136,7 +135,6 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
float2 r035 = fmod(inF0, inF1); float2 r035 = fmod(inF0, inF1);
float2 r036 = frac(inF0); float2 r036 = frac(inF0);
float2 r037 = frexp(inF0, inF1);
float2 r038 = fwidth(inF0); float2 r038 = fwidth(inF0);
bool2 r039 = isinf(inF0); bool2 r039 = isinf(inF0);
bool2 r040 = isnan(inF0); bool2 r040 = isnan(inF0);
...@@ -217,7 +215,6 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u ...@@ -217,7 +215,6 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
float3 r036 = fmod(inF0, inF1); float3 r036 = fmod(inF0, inF1);
float3 r037 = frac(inF0); float3 r037 = frac(inF0);
float3 r038 = frexp(inF0, inF1);
float3 r039 = fwidth(inF0); float3 r039 = fwidth(inF0);
bool3 r040 = isinf(inF0); bool3 r040 = isinf(inF0);
bool3 r041 = isnan(inF0); bool3 r041 = isnan(inF0);
...@@ -299,7 +296,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui ...@@ -299,7 +296,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
float4 r036 = fmod(inF0, inF1); float4 r036 = fmod(inF0, inF1);
float4 r037 = frac(inF0); float4 r037 = frac(inF0);
float4 r038 = frexp(inF0, inF1);
float4 r039 = fwidth(inF0); float4 r039 = fwidth(inF0);
bool4 r040 = isinf(inF0); bool4 r040 = isinf(inF0);
bool4 r041 = isnan(inF0); bool4 r041 = isnan(inF0);
...@@ -369,7 +365,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui ...@@ -369,7 +365,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui
MT r021 = floor(inF0); \ MT r021 = floor(inF0); \
MT r022 = fmod(inF0, inF1); \ MT r022 = fmod(inF0, inF1); \
MT r023 = frac(inF0); \ MT r023 = frac(inF0); \
MT r024 = frexp(inF0, inF1); \
MT r025 = fwidth(inF0); \ MT r025 = fwidth(inF0); \
MT r026 = ldexp(inF0, inF1); \ MT r026 = ldexp(inF0, inF1); \
MT r026a = lerp(inF0, inF1, inF2); \ MT r026a = lerp(inF0, inF1, inF2); \
......
...@@ -28,7 +28,6 @@ float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint ...@@ -28,7 +28,6 @@ float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
fmod(inF0, inF1); fmod(inF0, inF1);
frac(inF0); frac(inF0);
frexp(inF0, inF1);
isinf(inF0); isinf(inF0);
isnan(inF0); isnan(inF0);
ldexp(inF0, inF1); ldexp(inF0, inF1);
...@@ -99,7 +98,6 @@ float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, ...@@ -99,7 +98,6 @@ float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0,
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
fmod(inF0, inF1); fmod(inF0, inF1);
frac(inF0); frac(inF0);
frexp(inF0, inF1);
isinf(inF0); isinf(inF0);
isnan(inF0); isnan(inF0);
ldexp(inF0, inF1); ldexp(inF0, inF1);
...@@ -170,7 +168,6 @@ float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, ...@@ -170,7 +168,6 @@ float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0,
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
fmod(inF0, inF1); fmod(inF0, inF1);
frac(inF0); frac(inF0);
frexp(inF0, inF1);
isinf(inF0); isinf(inF0);
isnan(inF0); isnan(inF0);
ldexp(inF0, inF1); ldexp(inF0, inF1);
...@@ -241,7 +238,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ...@@ -241,7 +238,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0,
// TODO: fma(inD0, inD1, inD2); // TODO: fma(inD0, inD1, inD2);
fmod(inF0, inF1); fmod(inF0, inF1);
frac(inF0); frac(inF0);
frexp(inF0, inF1);
isinf(inF0); isinf(inF0);
isnan(inF0); isnan(inF0);
ldexp(inF0, inF1); ldexp(inF0, inF1);
...@@ -305,7 +301,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ...@@ -305,7 +301,6 @@ float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0,
floor(inF0); \ floor(inF0); \
fmod(inF0, inF1); \ fmod(inF0, inF1); \
frac(inF0); \ frac(inF0); \
frexp(inF0, inF1); \
ldexp(inF0, inF1); \ ldexp(inF0, inF1); \
lerp(inF0, inF1, inF2); \ lerp(inF0, inF1, inF2); \
log(inF0); \ log(inF0); \
......
...@@ -138,6 +138,7 @@ INSTANTIATE_TEST_CASE_P( ...@@ -138,6 +138,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.intrinsics.f1632.frag", "main"}, {"hlsl.intrinsics.f1632.frag", "main"},
{"hlsl.intrinsics.f3216.frag", "main"}, {"hlsl.intrinsics.f3216.frag", "main"},
{"hlsl.intrinsics.frag", "main"}, {"hlsl.intrinsics.frag", "main"},
{"hlsl.intrinsic.frexp.frag", "main"},
{"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"},
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
{"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"},
...@@ -239,6 +240,7 @@ INSTANTIATE_TEST_CASE_P( ...@@ -239,6 +240,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.structStructName.frag", "main"}, {"hlsl.structStructName.frag", "main"},
{"hlsl.this.frag", "main"}, {"hlsl.this.frag", "main"},
{"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"},
{"hlsl.intrinsic.frexp.vert", "VertexShaderFunction"},
{"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"},
{"hlsl.matType.bool.frag", "main"}, {"hlsl.matType.bool.frag", "main"},
{"hlsl.matType.int.frag", "main"}, {"hlsl.matType.int.frag", "main"},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment