;; Test where src and dst have the true and false blocks of an if reordered. | |
OpCapability Shader | |
%1 = OpExtInstImport "GLSL.std.450" | |
OpMemoryModel Logical GLSL450 | |
OpEntryPoint Fragment %4 "main" %8 %44 | |
OpExecutionMode %4 OriginUpperLeft | |
OpSource ESSL 310 | |
OpName %4 "main" | |
OpName %8 "v" | |
OpName %44 "color" | |
OpDecorate %8 RelaxedPrecision | |
OpDecorate %8 Location 0 | |
OpDecorate %9 RelaxedPrecision | |
OpDecorate %18 RelaxedPrecision | |
OpDecorate %19 RelaxedPrecision | |
OpDecorate %20 RelaxedPrecision | |
OpDecorate %23 RelaxedPrecision | |
OpDecorate %24 RelaxedPrecision | |
OpDecorate %25 RelaxedPrecision | |
OpDecorate %26 RelaxedPrecision | |
OpDecorate %27 RelaxedPrecision | |
OpDecorate %28 RelaxedPrecision | |
OpDecorate %29 RelaxedPrecision | |
OpDecorate %30 RelaxedPrecision | |
OpDecorate %31 RelaxedPrecision | |
OpDecorate %33 RelaxedPrecision | |
OpDecorate %34 RelaxedPrecision | |
OpDecorate %35 RelaxedPrecision | |
OpDecorate %36 RelaxedPrecision | |
OpDecorate %37 RelaxedPrecision | |
OpDecorate %39 RelaxedPrecision | |
OpDecorate %40 RelaxedPrecision | |
OpDecorate %41 RelaxedPrecision | |
OpDecorate %42 RelaxedPrecision | |
OpDecorate %44 RelaxedPrecision | |
OpDecorate %44 Location 0 | |
OpDecorate %45 RelaxedPrecision | |
%2 = OpTypeVoid | |
%3 = OpTypeFunction %2 | |
%6 = OpTypeFloat 32 | |
%7 = OpTypePointer Input %6 | |
%8 = OpVariable %7 Input | |
%10 = OpConstant %6 0 | |
%11 = OpTypeBool | |
%15 = OpTypeVector %6 4 | |
%16 = OpTypePointer Function %15 | |
%21 = OpConstant %6 -0.5 | |
%22 = OpConstant %6 -0.300000012 | |
%38 = OpConstant %6 0.5 | |
%43 = OpTypePointer Output %15 | |
%44 = OpVariable %43 Output | |
%4 = OpFunction %2 None %3 | |
%5 = OpLabel | |
%9 = OpLoad %6 %8 | |
%12 = OpFOrdLessThanEqual %11 %9 %10 | |
OpSelectionMerge %14 None | |
OpBranchConditional %12 %13 %32 | |
%13 = OpLabel | |
%18 = OpLoad %6 %8 | |
%19 = OpExtInst %6 %1 Log %18 | |
%20 = OpLoad %6 %8 | |
%23 = OpExtInst %6 %1 FClamp %20 %21 %22 | |
%24 = OpFMul %6 %19 %23 | |
%25 = OpLoad %6 %8 | |
%26 = OpExtInst %6 %1 Sin %25 | |
%27 = OpLoad %6 %8 | |
%28 = OpExtInst %6 %1 Cos %27 | |
%29 = OpLoad %6 %8 | |
%30 = OpExtInst %6 %1 Exp %29 | |
%31 = OpCompositeConstruct %15 %24 %26 %28 %30 | |
OpBranch %14 | |
%32 = OpLabel | |
%33 = OpLoad %6 %8 | |
%34 = OpExtInst %6 %1 Sqrt %33 | |
%35 = OpLoad %6 %8 | |
%36 = OpExtInst %6 %1 FSign %35 | |
%37 = OpLoad %6 %8 | |
%39 = OpExtInst %6 %1 FMax %37 %38 | |
%40 = OpLoad %6 %8 | |
%41 = OpExtInst %6 %1 Floor %40 | |
%42 = OpCompositeConstruct %15 %34 %36 %39 %41 | |
OpBranch %14 | |
%14 = OpLabel | |
%45 = OpPhi %15 %31 %13 %42 %32 | |
OpStore %44 %45 | |
OpReturn | |
OpFunctionEnd |