2020-11-20 21:28:50 +00:00
|
|
|
OpCapability Shader
|
|
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
|
|
OpMemoryModel Logical GLSL450
|
|
|
|
OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise
|
|
|
|
OpExecutionMode %main OriginUpperLeft
|
|
|
|
OpName %sk_FragColor "sk_FragColor"
|
|
|
|
OpName %sk_Clockwise "sk_Clockwise"
|
|
|
|
OpName %main "main"
|
|
|
|
OpName %v "v"
|
|
|
|
OpName %result "result"
|
|
|
|
OpDecorate %sk_FragColor RelaxedPrecision
|
|
|
|
OpDecorate %sk_FragColor Location 0
|
|
|
|
OpDecorate %sk_FragColor Index 0
|
|
|
|
OpDecorate %sk_Clockwise RelaxedPrecision
|
|
|
|
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
|
|
|
OpDecorate %21 RelaxedPrecision
|
|
|
|
OpDecorate %25 RelaxedPrecision
|
|
|
|
OpDecorate %32 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %35 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
OpDecorate %38 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %45 RelaxedPrecision
|
|
|
|
OpDecorate %50 RelaxedPrecision
|
|
|
|
OpDecorate %52 RelaxedPrecision
|
|
|
|
OpDecorate %55 RelaxedPrecision
|
|
|
|
OpDecorate %58 RelaxedPrecision
|
|
|
|
OpDecorate %63 RelaxedPrecision
|
|
|
|
OpDecorate %66 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
OpDecorate %69 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %70 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
OpDecorate %76 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %80 RelaxedPrecision
|
|
|
|
OpDecorate %83 RelaxedPrecision
|
|
|
|
OpDecorate %88 RelaxedPrecision
|
|
|
|
OpDecorate %90 RelaxedPrecision
|
|
|
|
OpDecorate %95 RelaxedPrecision
|
|
|
|
OpDecorate %97 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
OpDecorate %100 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %102 RelaxedPrecision
|
|
|
|
OpDecorate %105 RelaxedPrecision
|
|
|
|
OpDecorate %108 RelaxedPrecision
|
|
|
|
OpDecorate %114 RelaxedPrecision
|
|
|
|
OpDecorate %119 RelaxedPrecision
|
|
|
|
OpDecorate %121 RelaxedPrecision
|
|
|
|
OpDecorate %124 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
OpDecorate %127 RelaxedPrecision
|
|
|
|
OpDecorate %132 RelaxedPrecision
|
|
|
|
OpDecorate %135 RelaxedPrecision
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpDecorate %139 RelaxedPrecision
|
2021-01-06 16:57:58 +00:00
|
|
|
OpDecorate %148 RelaxedPrecision
|
2020-11-20 21:28:50 +00:00
|
|
|
%float = OpTypeFloat 32
|
|
|
|
%v4float = OpTypeVector %float 4
|
|
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
|
|
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
|
|
|
|
%bool = OpTypeBool
|
|
|
|
%_ptr_Input_bool = OpTypePointer Input %bool
|
|
|
|
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
|
|
|
%void = OpTypeVoid
|
|
|
|
%11 = OpTypeFunction %void
|
|
|
|
%v4bool = OpTypeVector %bool 4
|
|
|
|
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
|
|
|
%float_1 = OpConstant %float 1
|
|
|
|
%true = OpConstantTrue %bool
|
|
|
|
%v2bool = OpTypeVector %bool 2
|
|
|
|
%false = OpConstantFalse %bool
|
|
|
|
%v3bool = OpTypeVector %bool 3
|
|
|
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
2021-01-06 16:57:58 +00:00
|
|
|
%145 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
2020-11-20 21:28:50 +00:00
|
|
|
%float_0 = OpConstant %float 0
|
2021-01-06 18:33:31 +00:00
|
|
|
%147 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
2020-11-20 21:28:50 +00:00
|
|
|
%main = OpFunction %void None %11
|
|
|
|
%12 = OpLabel
|
|
|
|
%v = OpVariable %_ptr_Function_v4bool Function
|
|
|
|
%result = OpVariable %_ptr_Function_v4bool Function
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%140 = OpVariable %_ptr_Function_v4float Function
|
2020-11-20 21:28:50 +00:00
|
|
|
%16 = OpExtInst %float %1 Sqrt %float_1
|
|
|
|
%18 = OpFOrdEqual %bool %16 %float_1
|
|
|
|
%19 = OpCompositeConstruct %v4bool %18 %18 %18 %18
|
|
|
|
OpStore %v %19
|
|
|
|
%21 = OpLoad %v4bool %v
|
|
|
|
%22 = OpCompositeExtract %bool %21 0
|
|
|
|
%24 = OpCompositeConstruct %v4bool %22 %true %true %true
|
|
|
|
OpStore %result %24
|
|
|
|
%25 = OpLoad %v4bool %v
|
|
|
|
%26 = OpVectorShuffle %v2bool %25 %25 0 1
|
|
|
|
%28 = OpCompositeExtract %bool %26 0
|
|
|
|
%29 = OpCompositeExtract %bool %26 1
|
|
|
|
%31 = OpCompositeConstruct %v4bool %28 %29 %false %true
|
|
|
|
OpStore %result %31
|
|
|
|
%32 = OpLoad %v4bool %v
|
|
|
|
%33 = OpCompositeExtract %bool %32 0
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%34 = OpCompositeConstruct %v4bool %33 %true %true %false
|
|
|
|
OpStore %result %34
|
|
|
|
%35 = OpLoad %v4bool %v
|
|
|
|
%36 = OpCompositeExtract %bool %35 1
|
|
|
|
%37 = OpCompositeConstruct %v4bool %false %36 %true %true
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %37
|
|
|
|
%38 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%39 = OpVectorShuffle %v3bool %38 %38 0 1 2
|
|
|
|
%41 = OpCompositeExtract %bool %39 0
|
|
|
|
%42 = OpCompositeExtract %bool %39 1
|
|
|
|
%43 = OpCompositeExtract %bool %39 2
|
|
|
|
%44 = OpCompositeConstruct %v4bool %41 %42 %43 %true
|
|
|
|
OpStore %result %44
|
|
|
|
%45 = OpLoad %v4bool %v
|
|
|
|
%46 = OpVectorShuffle %v2bool %45 %45 0 1
|
|
|
|
%47 = OpCompositeExtract %bool %46 0
|
|
|
|
%48 = OpCompositeExtract %bool %46 1
|
|
|
|
%49 = OpCompositeConstruct %v4bool %47 %48 %true %true
|
|
|
|
OpStore %result %49
|
|
|
|
%50 = OpLoad %v4bool %v
|
|
|
|
%51 = OpCompositeExtract %bool %50 0
|
|
|
|
%52 = OpLoad %v4bool %v
|
|
|
|
%53 = OpCompositeExtract %bool %52 2
|
|
|
|
%54 = OpCompositeConstruct %v4bool %51 %false %53 %true
|
|
|
|
OpStore %result %54
|
|
|
|
%55 = OpLoad %v4bool %v
|
2020-11-20 21:28:50 +00:00
|
|
|
%56 = OpCompositeExtract %bool %55 0
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%57 = OpCompositeConstruct %v4bool %56 %true %false %false
|
|
|
|
OpStore %result %57
|
|
|
|
%58 = OpLoad %v4bool %v
|
|
|
|
%59 = OpVectorShuffle %v2bool %58 %58 1 2
|
|
|
|
%60 = OpCompositeExtract %bool %59 0
|
|
|
|
%61 = OpCompositeExtract %bool %59 1
|
|
|
|
%62 = OpCompositeConstruct %v4bool %true %60 %61 %false
|
|
|
|
OpStore %result %62
|
|
|
|
%63 = OpLoad %v4bool %v
|
|
|
|
%64 = OpCompositeExtract %bool %63 1
|
|
|
|
%65 = OpCompositeConstruct %v4bool %false %64 %true %false
|
|
|
|
OpStore %result %65
|
|
|
|
%66 = OpLoad %v4bool %v
|
|
|
|
%67 = OpCompositeExtract %bool %66 2
|
|
|
|
%68 = OpCompositeConstruct %v4bool %true %true %67 %false
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %68
|
|
|
|
%69 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpStore %result %69
|
|
|
|
%70 = OpLoad %v4bool %v
|
|
|
|
%71 = OpVectorShuffle %v3bool %70 %70 0 1 2
|
2020-11-20 21:28:50 +00:00
|
|
|
%72 = OpCompositeExtract %bool %71 0
|
|
|
|
%73 = OpCompositeExtract %bool %71 1
|
|
|
|
%74 = OpCompositeExtract %bool %71 2
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%75 = OpCompositeConstruct %v4bool %72 %73 %74 %true
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %75
|
|
|
|
%76 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%77 = OpVectorShuffle %v2bool %76 %76 0 1
|
2020-11-20 21:28:50 +00:00
|
|
|
%78 = OpCompositeExtract %bool %77 0
|
|
|
|
%79 = OpCompositeExtract %bool %77 1
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%80 = OpLoad %v4bool %v
|
|
|
|
%81 = OpCompositeExtract %bool %80 3
|
|
|
|
%82 = OpCompositeConstruct %v4bool %78 %79 %false %81
|
|
|
|
OpStore %result %82
|
|
|
|
%83 = OpLoad %v4bool %v
|
|
|
|
%84 = OpVectorShuffle %v2bool %83 %83 0 1
|
|
|
|
%85 = OpCompositeExtract %bool %84 0
|
|
|
|
%86 = OpCompositeExtract %bool %84 1
|
|
|
|
%87 = OpCompositeConstruct %v4bool %85 %86 %true %false
|
|
|
|
OpStore %result %87
|
|
|
|
%88 = OpLoad %v4bool %v
|
|
|
|
%89 = OpCompositeExtract %bool %88 0
|
|
|
|
%90 = OpLoad %v4bool %v
|
|
|
|
%91 = OpVectorShuffle %v2bool %90 %90 2 3
|
|
|
|
%92 = OpCompositeExtract %bool %91 0
|
|
|
|
%93 = OpCompositeExtract %bool %91 1
|
|
|
|
%94 = OpCompositeConstruct %v4bool %89 %true %92 %93
|
|
|
|
OpStore %result %94
|
|
|
|
%95 = OpLoad %v4bool %v
|
|
|
|
%96 = OpCompositeExtract %bool %95 0
|
|
|
|
%97 = OpLoad %v4bool %v
|
|
|
|
%98 = OpCompositeExtract %bool %97 2
|
|
|
|
%99 = OpCompositeConstruct %v4bool %96 %false %98 %true
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %99
|
|
|
|
%100 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%101 = OpCompositeExtract %bool %100 0
|
|
|
|
%102 = OpLoad %v4bool %v
|
|
|
|
%103 = OpCompositeExtract %bool %102 3
|
|
|
|
%104 = OpCompositeConstruct %v4bool %101 %true %true %103
|
|
|
|
OpStore %result %104
|
|
|
|
%105 = OpLoad %v4bool %v
|
|
|
|
%106 = OpCompositeExtract %bool %105 0
|
|
|
|
%107 = OpCompositeConstruct %v4bool %106 %true %false %true
|
|
|
|
OpStore %result %107
|
|
|
|
%108 = OpLoad %v4bool %v
|
|
|
|
%109 = OpVectorShuffle %v3bool %108 %108 1 2 3
|
|
|
|
%110 = OpCompositeExtract %bool %109 0
|
|
|
|
%111 = OpCompositeExtract %bool %109 1
|
|
|
|
%112 = OpCompositeExtract %bool %109 2
|
|
|
|
%113 = OpCompositeConstruct %v4bool %true %110 %111 %112
|
|
|
|
OpStore %result %113
|
|
|
|
%114 = OpLoad %v4bool %v
|
|
|
|
%115 = OpVectorShuffle %v2bool %114 %114 1 2
|
|
|
|
%116 = OpCompositeExtract %bool %115 0
|
|
|
|
%117 = OpCompositeExtract %bool %115 1
|
|
|
|
%118 = OpCompositeConstruct %v4bool %false %116 %117 %true
|
|
|
|
OpStore %result %118
|
|
|
|
%119 = OpLoad %v4bool %v
|
|
|
|
%120 = OpCompositeExtract %bool %119 1
|
|
|
|
%121 = OpLoad %v4bool %v
|
|
|
|
%122 = OpCompositeExtract %bool %121 3
|
|
|
|
%123 = OpCompositeConstruct %v4bool %false %120 %true %122
|
|
|
|
OpStore %result %123
|
|
|
|
%124 = OpLoad %v4bool %v
|
|
|
|
%125 = OpCompositeExtract %bool %124 1
|
|
|
|
%126 = OpCompositeConstruct %v4bool %true %125 %true %true
|
|
|
|
OpStore %result %126
|
2020-11-20 21:28:50 +00:00
|
|
|
%127 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%128 = OpVectorShuffle %v2bool %127 %127 2 3
|
|
|
|
%129 = OpCompositeExtract %bool %128 0
|
|
|
|
%130 = OpCompositeExtract %bool %128 1
|
|
|
|
%131 = OpCompositeConstruct %v4bool %false %false %129 %130
|
|
|
|
OpStore %result %131
|
2020-11-20 21:28:50 +00:00
|
|
|
%132 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%133 = OpCompositeExtract %bool %132 2
|
|
|
|
%134 = OpCompositeConstruct %v4bool %false %false %133 %true
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %134
|
|
|
|
%135 = OpLoad %v4bool %v
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%136 = OpCompositeExtract %bool %135 3
|
|
|
|
%137 = OpCompositeConstruct %v4bool %false %true %true %136
|
2020-11-20 21:28:50 +00:00
|
|
|
OpStore %result %137
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
%139 = OpLoad %v4bool %result
|
|
|
|
%138 = OpAny %bool %139
|
|
|
|
OpSelectionMerge %144 None
|
|
|
|
OpBranchConditional %138 %142 %143
|
|
|
|
%142 = OpLabel
|
|
|
|
OpStore %140 %145
|
|
|
|
OpBranch %144
|
|
|
|
%143 = OpLabel
|
2021-01-06 18:33:31 +00:00
|
|
|
OpStore %140 %147
|
Flatten out constructors nested inside constructors.
- float4(float2(1, 2), 3, 4) --> float4(1, 2, 3, 4)
- half3(z, half2(fn(x), y*2)) --> half3(z, fn(x), y*2)
Single-argument constructors will be ignored by this optimization; these
might be casts or splats.
This had an unexpected side benefit of simplifying some Metal output,
as we need to output fewer Metal matrix construction helper functions
when matrices use more simple scalars for construction.
Change-Id: I0a161db060c107e35247901619291bf83801cb11
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/337400
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-11-22 04:26:07 +00:00
|
|
|
OpBranch %144
|
|
|
|
%144 = OpLabel
|
2021-01-06 16:57:58 +00:00
|
|
|
%148 = OpLoad %v4float %140
|
|
|
|
OpStore %sk_FragColor %148
|
2020-11-20 21:28:50 +00:00
|
|
|
OpReturn
|
|
|
|
OpFunctionEnd
|