1;; Test where src and dst have the true and false blocks of an if reordered. 2 OpCapability Shader 3 %1 = OpExtInstImport "GLSL.std.450" 4 OpMemoryModel Logical GLSL450 5 OpEntryPoint Fragment %4 "main" %8 %44 6 OpExecutionMode %4 OriginUpperLeft 7 OpSource ESSL 310 8 OpName %4 "main" 9 OpName %8 "v" 10 OpName %44 "color" 11 OpDecorate %8 RelaxedPrecision 12 OpDecorate %8 Location 0 13 OpDecorate %9 RelaxedPrecision 14 OpDecorate %18 RelaxedPrecision 15 OpDecorate %19 RelaxedPrecision 16 OpDecorate %20 RelaxedPrecision 17 OpDecorate %23 RelaxedPrecision 18 OpDecorate %24 RelaxedPrecision 19 OpDecorate %25 RelaxedPrecision 20 OpDecorate %26 RelaxedPrecision 21 OpDecorate %27 RelaxedPrecision 22 OpDecorate %28 RelaxedPrecision 23 OpDecorate %29 RelaxedPrecision 24 OpDecorate %30 RelaxedPrecision 25 OpDecorate %31 RelaxedPrecision 26 OpDecorate %33 RelaxedPrecision 27 OpDecorate %34 RelaxedPrecision 28 OpDecorate %35 RelaxedPrecision 29 OpDecorate %36 RelaxedPrecision 30 OpDecorate %37 RelaxedPrecision 31 OpDecorate %39 RelaxedPrecision 32 OpDecorate %40 RelaxedPrecision 33 OpDecorate %41 RelaxedPrecision 34 OpDecorate %42 RelaxedPrecision 35 OpDecorate %44 RelaxedPrecision 36 OpDecorate %44 Location 0 37 OpDecorate %45 RelaxedPrecision 38 %2 = OpTypeVoid 39 %3 = OpTypeFunction %2 40 %6 = OpTypeFloat 32 41 %7 = OpTypePointer Input %6 42 %8 = OpVariable %7 Input 43 %10 = OpConstant %6 0 44 %11 = OpTypeBool 45 %15 = OpTypeVector %6 4 46 %16 = OpTypePointer Function %15 47 %21 = OpConstant %6 -0.5 48 %22 = OpConstant %6 -0.300000012 49 %38 = OpConstant %6 0.5 50 %43 = OpTypePointer Output %15 51 %44 = OpVariable %43 Output 52 %4 = OpFunction %2 None %3 53 %5 = OpLabel 54 %9 = OpLoad %6 %8 55 %12 = OpFOrdLessThanEqual %11 %9 %10 56 OpSelectionMerge %14 None 57 OpBranchConditional %12 %13 %32 58 %13 = OpLabel 59 %18 = OpLoad %6 %8 60 %19 = OpExtInst %6 %1 Log %18 61 %20 = OpLoad %6 %8 62 %23 = OpExtInst %6 %1 FClamp %20 %21 %22 63 %24 = OpFMul %6 %19 %23 64 %25 = OpLoad %6 %8 65 %26 = OpExtInst %6 %1 Sin %25 66 %27 = OpLoad %6 %8 67 %28 = OpExtInst %6 %1 Cos %27 68 %29 = OpLoad %6 %8 69 %30 = OpExtInst %6 %1 Exp %29 70 %31 = OpCompositeConstruct %15 %24 %26 %28 %30 71 OpBranch %14 72 %32 = OpLabel 73 %33 = OpLoad %6 %8 74 %34 = OpExtInst %6 %1 Sqrt %33 75 %35 = OpLoad %6 %8 76 %36 = OpExtInst %6 %1 FSign %35 77 %37 = OpLoad %6 %8 78 %39 = OpExtInst %6 %1 FMax %37 %38 79 %40 = OpLoad %6 %8 80 %41 = OpExtInst %6 %1 Floor %40 81 %42 = OpCompositeConstruct %15 %34 %36 %39 %41 82 OpBranch %14 83 %14 = OpLabel 84 %45 = OpPhi %15 %31 %13 %42 %32 85 OpStore %44 %45 86 OpReturn 87 OpFunctionEnd 88