hlsl.isfinite.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: test1(f1; ( temp bool)
0:7    Function Parameters: 
0:7      'v' ( in float)
0:?     Sequence
0:8      Branch: Return with expression
0:8        logical-and ( temp bool)
0:8          Negate conditional ( temp bool)
0:8            isnan ( temp bool)
0:8              'v' ( in float)
0:8          Sequence
0:8            move second child to first child ( temp float)
0:8              '@finitetmp' ( temp float)
0:8              'v' ( in float)
0:8            logical-and ( temp bool)
0:8              Negate conditional ( temp bool)
0:8                isnan ( temp bool)
0:8                  '@finitetmp' ( temp float)
0:8              Negate conditional ( temp bool)
0:8                isinf ( temp bool)
0:8                  '@finitetmp' ( temp float)
0:12  Function Definition: @main( ( temp 4-component vector of float)
0:12    Function Parameters: 
0:?     Sequence
0:13      Sequence
0:13        move second child to first child ( temp float)
0:13          '@finitetmp' ( temp float)
0:13          f: direct index for structure ( uniform float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:13            Constant:
0:13              0 (const uint)
0:13        logical-and ( temp bool)
0:13          Negate conditional ( temp bool)
0:13            isnan ( temp bool)
0:13              '@finitetmp' ( temp float)
0:13          Negate conditional ( temp bool)
0:13            isinf ( temp bool)
0:13              '@finitetmp' ( temp float)
0:14      Sequence
0:14        move second child to first child ( temp 2-component vector of float)
0:14          '@finitetmp' ( temp 2-component vector of float)
0:14          f2: direct index for structure ( uniform 2-component vector of float)
0:14            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:14            Constant:
0:14              1 (const uint)
0:14        logical-and ( temp 2-component vector of bool)
0:14          Negate conditional ( temp 2-component vector of bool)
0:14            isnan ( temp 2-component vector of bool)
0:14              '@finitetmp' ( temp 2-component vector of float)
0:14          Negate conditional ( temp 2-component vector of bool)
0:14            isinf ( temp 2-component vector of bool)
0:14              '@finitetmp' ( temp 2-component vector of float)
0:15      Sequence
0:15        move second child to first child ( temp 3-component vector of float)
0:15          '@finitetmp' ( temp 3-component vector of float)
0:15          f3: direct index for structure ( uniform 3-component vector of float)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:15            Constant:
0:15              2 (const uint)
0:15        logical-and ( temp 3-component vector of bool)
0:15          Negate conditional ( temp 3-component vector of bool)
0:15            isnan ( temp 3-component vector of bool)
0:15              '@finitetmp' ( temp 3-component vector of float)
0:15          Negate conditional ( temp 3-component vector of bool)
0:15            isinf ( temp 3-component vector of bool)
0:15              '@finitetmp' ( temp 3-component vector of float)
0:17      Branch: Return with expression
0:17        Constant:
0:17          0.000000
0:17          0.000000
0:17          0.000000
0:17          0.000000
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:12        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: test1(f1; ( temp bool)
0:7    Function Parameters: 
0:7      'v' ( in float)
0:?     Sequence
0:8      Branch: Return with expression
0:8        logical-and ( temp bool)
0:8          Negate conditional ( temp bool)
0:8            isnan ( temp bool)
0:8              'v' ( in float)
0:8          Sequence
0:8            move second child to first child ( temp float)
0:8              '@finitetmp' ( temp float)
0:8              'v' ( in float)
0:8            logical-and ( temp bool)
0:8              Negate conditional ( temp bool)
0:8                isnan ( temp bool)
0:8                  '@finitetmp' ( temp float)
0:8              Negate conditional ( temp bool)
0:8                isinf ( temp bool)
0:8                  '@finitetmp' ( temp float)
0:12  Function Definition: @main( ( temp 4-component vector of float)
0:12    Function Parameters: 
0:?     Sequence
0:13      Sequence
0:13        move second child to first child ( temp float)
0:13          '@finitetmp' ( temp float)
0:13          f: direct index for structure ( uniform float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:13            Constant:
0:13              0 (const uint)
0:13        logical-and ( temp bool)
0:13          Negate conditional ( temp bool)
0:13            isnan ( temp bool)
0:13              '@finitetmp' ( temp float)
0:13          Negate conditional ( temp bool)
0:13            isinf ( temp bool)
0:13              '@finitetmp' ( temp float)
0:14      Sequence
0:14        move second child to first child ( temp 2-component vector of float)
0:14          '@finitetmp' ( temp 2-component vector of float)
0:14          f2: direct index for structure ( uniform 2-component vector of float)
0:14            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:14            Constant:
0:14              1 (const uint)
0:14        logical-and ( temp 2-component vector of bool)
0:14          Negate conditional ( temp 2-component vector of bool)
0:14            isnan ( temp 2-component vector of bool)
0:14              '@finitetmp' ( temp 2-component vector of float)
0:14          Negate conditional ( temp 2-component vector of bool)
0:14            isinf ( temp 2-component vector of bool)
0:14              '@finitetmp' ( temp 2-component vector of float)
0:15      Sequence
0:15        move second child to first child ( temp 3-component vector of float)
0:15          '@finitetmp' ( temp 3-component vector of float)
0:15          f3: direct index for structure ( uniform 3-component vector of float)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:15            Constant:
0:15              2 (const uint)
0:15        logical-and ( temp 3-component vector of bool)
0:15          Negate conditional ( temp 3-component vector of bool)
0:15            isnan ( temp 3-component vector of bool)
0:15              '@finitetmp' ( temp 3-component vector of float)
0:15          Negate conditional ( temp 3-component vector of bool)
0:15            isinf ( temp 3-component vector of bool)
0:15              '@finitetmp' ( temp 3-component vector of float)
0:17      Branch: Return with expression
0:17        Constant:
0:17          0.000000
0:17          0.000000
0:17          0.000000
0:17          0.000000
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:12        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float f,  uniform 2-component vector of float f2,  uniform 3-component vector of float f3})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 85

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 83
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "test1(f1;"
                              Name 10  "v"
                              Name 15  "@main("
                              Name 20  "@finitetmp"
                              Name 32  "@finitetmp"
                              Name 35  "$Global"
                              MemberName 35($Global) 0  "f"
                              MemberName 35($Global) 1  "f2"
                              MemberName 35($Global) 2  "f3"
                              Name 37  ""
                              Name 51  "@finitetmp"
                              Name 65  "@finitetmp"
                              Name 83  "@entryPointOutput"
                              MemberDecorate 35($Global) 0 Offset 0
                              MemberDecorate 35($Global) 1 Offset 8
                              MemberDecorate 35($Global) 2 Offset 16
                              Decorate 35($Global) Block
                              Decorate 37 DescriptorSet 0
                              Decorate 37 Binding 0
                              Decorate 83(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeBool
               9:             TypeFunction 8(bool) 7(ptr)
              13:             TypeVector 6(float) 4
              14:             TypeFunction 13(fvec4)
              33:             TypeVector 6(float) 2
              34:             TypeVector 6(float) 3
     35($Global):             TypeStruct 6(float) 33(fvec2) 34(fvec3)
              36:             TypePointer Uniform 35($Global)
              37:     36(ptr) Variable Uniform
              38:             TypeInt 32 1
              39:     38(int) Constant 0
              40:             TypePointer Uniform 6(float)
              50:             TypePointer Function 33(fvec2)
              52:     38(int) Constant 1
              53:             TypePointer Uniform 33(fvec2)
              57:             TypeVector 8(bool) 2
              64:             TypePointer Function 34(fvec3)
              66:     38(int) Constant 2
              67:             TypePointer Uniform 34(fvec3)
              71:             TypeVector 8(bool) 3
              78:    6(float) Constant 0
              79:   13(fvec4) ConstantComposite 78 78 78 78
              82:             TypePointer Output 13(fvec4)
83(@entryPointOutput):     82(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              84:   13(fvec4) FunctionCall 15(@main()
                              Store 83(@entryPointOutput) 84
                              Return
                              FunctionEnd
   11(test1(f1;):     8(bool) Function None 9
           10(v):      7(ptr) FunctionParameter
              12:             Label
  20(@finitetmp):      7(ptr) Variable Function
              17:    6(float) Load 10(v)
              18:     8(bool) IsNan 17
              19:     8(bool) LogicalNot 18
              21:    6(float) Load 10(v)
                              Store 20(@finitetmp) 21
              22:    6(float) Load 20(@finitetmp)
              23:     8(bool) IsNan 22
              24:     8(bool) LogicalNot 23
              25:    6(float) Load 20(@finitetmp)
              26:     8(bool) IsInf 25
              27:     8(bool) LogicalNot 26
              28:     8(bool) LogicalAnd 24 27
              29:     8(bool) LogicalAnd 19 28
                              ReturnValue 29
                              FunctionEnd
      15(@main():   13(fvec4) Function None 14
              16:             Label
  32(@finitetmp):      7(ptr) Variable Function
  51(@finitetmp):     50(ptr) Variable Function
  65(@finitetmp):     64(ptr) Variable Function
              41:     40(ptr) AccessChain 37 39
              42:    6(float) Load 41
                              Store 32(@finitetmp) 42
              43:    6(float) Load 32(@finitetmp)
              44:     8(bool) IsNan 43
              45:     8(bool) LogicalNot 44
              46:    6(float) Load 32(@finitetmp)
              47:     8(bool) IsInf 46
              48:     8(bool) LogicalNot 47
              49:     8(bool) LogicalAnd 45 48
              54:     53(ptr) AccessChain 37 52
              55:   33(fvec2) Load 54
                              Store 51(@finitetmp) 55
              56:   33(fvec2) Load 51(@finitetmp)
              58:   57(bvec2) IsNan 56
              59:   57(bvec2) LogicalNot 58
              60:   33(fvec2) Load 51(@finitetmp)
              61:   57(bvec2) IsInf 60
              62:   57(bvec2) LogicalNot 61
              63:   57(bvec2) LogicalAnd 59 62
              68:     67(ptr) AccessChain 37 66
              69:   34(fvec3) Load 68
                              Store 65(@finitetmp) 69
              70:   34(fvec3) Load 65(@finitetmp)
              72:   71(bvec3) IsNan 70
              73:   71(bvec3) LogicalNot 72
              74:   34(fvec3) Load 65(@finitetmp)
              75:   71(bvec3) IsInf 74
              76:   71(bvec3) LogicalNot 75
              77:   71(bvec3) LogicalAnd 73 76
                              ReturnValue 79
                              FunctionEnd
