; LLVM IR from hbatagelo/abcg :: abcg/external/glslang/glslang/MachineIndependent (Constant)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.glslang::TConstUnionArray" = type { ptr, ptr }
%"class.glslang::TConstUnion" = type <{ %union.anon.0, i32, [4 x i8] }>
%union.anon.0 = type { i64 }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>

@.str.1 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE = external hidden unnamed_addr constant [90 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7glslang5TType20computeNumComponentsEv(ptr noundef nonnull align 8 dereferenceable(144)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TConstUnionArrayC2Ei(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #1 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12), double noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12), i8 noundef signext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12), i8 noundef zeroext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12), i16 noundef signext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12), i16 noundef zeroext) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12), i1 noundef zeroext) #1 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN11TIntermNodenwEm(i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang20TIntermConstantUnionC2ERKNS_16TConstUnionArrayERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(144)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11TIntermNodedlEPv(ptr noundef) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(144) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.glslang::TConstUnionArray", align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca i32, align 4
  %18 = alloca double, align 8
  %19 = alloca i32, align 4
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %"class.glslang::TConstUnion", align 8
  %26 = alloca { i64, i32 }, align 8
  %27 = alloca double, align 8
  %28 = alloca i8, align 1
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca ptr, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  %32 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  store i8 1, ptr %9, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %33 = load ptr, ptr %32, align 8, !tbaa !13
  %34 = getelementptr inbounds ptr, ptr %33, i64 30
  %35 = load ptr, ptr %34, align 8
  %36 = call noundef nonnull align 8 dereferenceable(144) ptr %35(ptr noundef nonnull align 8 dereferenceable(176) %32)
  %37 = call noundef i32 @_ZNK7glslang5TType20computeNumComponentsEv(ptr noundef nonnull align 8 dereferenceable(144) %36)
  store i32 %37, ptr %10, align 4, !tbaa !15
  %38 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %38, label %45 [
    i32 297, label %39
    i32 446, label %39
    i32 447, label %39
    i32 271, label %39
    i32 304, label %40
    i32 305, label %40
    i32 239, label %41
    i32 241, label %41
    i32 247, label %41
    i32 240, label %42
    i32 242, label %42
    i32 248, label %42
    i32 265, label %43
    i32 266, label %43
    i32 267, label %43
    i32 268, label %43
    i32 269, label %43
    i32 270, label %43
    i32 275, label %43
  ]

39:                                               ; preds = %3, %3, %3, %3
  store i8 0, ptr %9, align 1, !tbaa !11
  store i32 1, ptr %8, align 4, !tbaa !15
  br label %47

40:                                               ; preds = %3, %3
  store ptr null, ptr %4, align 8
  store i32 1, ptr %11, align 4
  br label %2749

41:                                               ; preds = %3, %3, %3
  store i8 0, ptr %9, align 1, !tbaa !11
  store i32 1, ptr %8, align 4, !tbaa !15
  br label %47

42:                                               ; preds = %3, %3, %3
  store i8 0, ptr %9, align 1, !tbaa !11
  store i32 2, ptr %8, align 4, !tbaa !15
  br label %47

43:                                               ; preds = %3, %3, %3, %3, %3, %3, %3
  store i8 0, ptr %9, align 1, !tbaa !11
  %44 = load i32, ptr %10, align 4, !tbaa !15
  store i32 %44, ptr %8, align 4, !tbaa !15
  br label %47

45:                                               ; preds = %3
  %46 = load i32, ptr %10, align 4, !tbaa !15
  store i32 %46, ptr %8, align 4, !tbaa !15
  br label %47

47:                                               ; preds = %45, %43, %42, %41, %39
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #8
  %48 = load i32, ptr %8, align 4, !tbaa !15
  call void @_ZN7glslang16TConstUnionArrayC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %12, i32 noundef %48)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %49 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %32)
          to label %50 unwind label %52

50:                                               ; preds = %47
  store ptr %49, ptr %13, align 8, !tbaa !5
  %51 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %51, label %201 [
    i32 271, label %56
    i32 275, label %56
    i32 446, label %132
    i32 447, label %166
    i32 239, label %200
    i32 241, label %200
    i32 247, label %200
    i32 265, label %200
    i32 266, label %200
    i32 267, label %200
    i32 268, label %200
    i32 269, label %200
    i32 270, label %200
    i32 240, label %200
    i32 242, label %200
    i32 248, label %200
    i32 297, label %200
    i32 298, label %200
    i32 299, label %200
  ]

52:                                               ; preds = %47
  %53 = landingpad { ptr, i32 }
          cleanup
  %54 = extractvalue { ptr, i32 } %53, 0
  store ptr %54, ptr %14, align 8
  %55 = extractvalue { ptr, i32 } %53, 1
  store i32 %55, ptr %15, align 4
  br label %2748

56:                                               ; preds = %50, %50
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  store double 0.000000e+00, ptr %16, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !15
  br label %57

57:                                               ; preds = %79, %56
  %58 = load i32, ptr %17, align 4, !tbaa !15
  %59 = load i32, ptr %10, align 4, !tbaa !15
  %60 = icmp slt i32 %58, %59
  br i1 %60, label %62, label %61

61:                                               ; preds = %57
  store i32 4, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %86

62:                                               ; preds = %57
  %63 = load ptr, ptr %13, align 8, !tbaa !5
  %64 = load i32, ptr %17, align 4, !tbaa !15
  %65 = sext i32 %64 to i64
  %66 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %63, i64 noundef %65)
          to label %67 unwind label %82

67:                                               ; preds = %62
  %68 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %66)
          to label %69 unwind label %82

69:                                               ; preds = %67
  %70 = load ptr, ptr %13, align 8, !tbaa !5
  %71 = load i32, ptr %17, align 4, !tbaa !15
  %72 = sext i32 %71 to i64
  %73 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %70, i64 noundef %72)
          to label %74 unwind label %82

74:                                               ; preds = %69
  %75 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %73)
          to label %76 unwind label %82

76:                                               ; preds = %74
  %77 = load double, ptr %16, align 8, !tbaa !17
  %78 = call double @llvm.fmuladd.f64(double %68, double %75, double %77)
  store double %78, ptr %16, align 8, !tbaa !17
  br label %79

79:                                               ; preds = %76
  %80 = load i32, ptr %17, align 4, !tbaa !15
  %81 = add nsw i32 %80, 1
  store i32 %81, ptr %17, align 4, !tbaa !15
  br label %57, !llvm.loop !19

82:                                               ; preds = %74, %69, %67, %62
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %14, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %131

86:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %87 = load double, ptr %16, align 8, !tbaa !17
  %88 = call double @sqrt(double noundef %87) #8
  store double %88, ptr %18, align 8, !tbaa !17
  %89 = load i32, ptr %6, align 4, !tbaa !9
  %90 = icmp eq i32 %89, 271
  br i1 %90, label %91, label %100

91:                                               ; preds = %86
  %92 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef 0)
          to label %93 unwind label %96

93:                                               ; preds = %91
  %94 = load double, ptr %18, align 8, !tbaa !17
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %92, double noundef %94)
          to label %95 unwind label %96

95:                                               ; preds = %93
  br label %129

96:                                               ; preds = %93, %91
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %14, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %15, align 4
  br label %130

100:                                              ; preds = %86
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !15
  br label %101

101:                                              ; preds = %121, %100
  %102 = load i32, ptr %19, align 4, !tbaa !15
  %103 = load i32, ptr %10, align 4, !tbaa !15
  %104 = icmp slt i32 %102, %103
  br i1 %104, label %106, label %105

105:                                              ; preds = %101
  store i32 7, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %128

106:                                              ; preds = %101
  %107 = load i32, ptr %19, align 4, !tbaa !15
  %108 = sext i32 %107 to i64
  %109 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %108)
          to label %110 unwind label %124

110:                                              ; preds = %106
  %111 = load ptr, ptr %13, align 8, !tbaa !5
  %112 = load i32, ptr %19, align 4, !tbaa !15
  %113 = sext i32 %112 to i64
  %114 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %111, i64 noundef %113)
          to label %115 unwind label %124

115:                                              ; preds = %110
  %116 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %114)
          to label %117 unwind label %124

117:                                              ; preds = %115
  %118 = load double, ptr %18, align 8, !tbaa !17
  %119 = fdiv double %116, %118
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %109, double noundef %119)
          to label %120 unwind label %124

120:                                              ; preds = %117
  br label %121

121:                                              ; preds = %120
  %122 = load i32, ptr %19, align 4, !tbaa !15
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %19, align 4, !tbaa !15
  br label %101, !llvm.loop !21

124:                                              ; preds = %117, %115, %110, %106
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %14, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %130

128:                                              ; preds = %105
  br label %129

129:                                              ; preds = %128, %95
  store i32 3, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %208

130:                                              ; preds = %124, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %131

131:                                              ; preds = %130, %82
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %2748

132:                                              ; preds = %50
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  store i8 0, ptr %20, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  store i32 0, ptr %21, align 4, !tbaa !15
  br label %133

133:                                              ; preds = %152, %132
  %134 = load i32, ptr %21, align 4, !tbaa !15
  %135 = load i32, ptr %10, align 4, !tbaa !15
  %136 = icmp slt i32 %134, %135
  br i1 %136, label %138, label %137

137:                                              ; preds = %133
  store i32 10, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %155

138:                                              ; preds = %133
  %139 = load ptr, ptr %13, align 8, !tbaa !5
  %140 = load i32, ptr %21, align 4, !tbaa !15
  %141 = sext i32 %140 to i64
  %142 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %139, i64 noundef %141)
          to label %143 unwind label %147

143:                                              ; preds = %138
  %144 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %142)
          to label %145 unwind label %147

145:                                              ; preds = %143
  br i1 %144, label %146, label %151

146:                                              ; preds = %145
  store i8 1, ptr %20, align 1, !tbaa !11
  br label %151

147:                                              ; preds = %143, %138
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %14, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %165

151:                                              ; preds = %146, %145
  br label %152

152:                                              ; preds = %151
  %153 = load i32, ptr %21, align 4, !tbaa !15
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr %21, align 4, !tbaa !15
  br label %133, !llvm.loop !22

155:                                              ; preds = %137
  %156 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef 0)
          to label %157 unwind label %161

157:                                              ; preds = %155
  %158 = load i8, ptr %20, align 1, !tbaa !11, !range !23, !noundef !24
  %159 = trunc i8 %158 to i1
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %156, i1 noundef zeroext %159)
          to label %160 unwind label %161

160:                                              ; preds = %157
  store i32 3, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %208

161:                                              ; preds = %157, %155
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %14, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %15, align 4
  br label %165

165:                                              ; preds = %161, %147
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %2748

166:                                              ; preds = %50
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  store i8 1, ptr %22, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 0, ptr %23, align 4, !tbaa !15
  br label %167

167:                                              ; preds = %186, %166
  %168 = load i32, ptr %23, align 4, !tbaa !15
  %169 = load i32, ptr %10, align 4, !tbaa !15
  %170 = icmp slt i32 %168, %169
  br i1 %170, label %172, label %171

171:                                              ; preds = %167
  store i32 13, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %189

172:                                              ; preds = %167
  %173 = load ptr, ptr %13, align 8, !tbaa !5
  %174 = load i32, ptr %23, align 4, !tbaa !15
  %175 = sext i32 %174 to i64
  %176 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %173, i64 noundef %175)
          to label %177 unwind label %181

177:                                              ; preds = %172
  %178 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %176)
          to label %179 unwind label %181

179:                                              ; preds = %177
  br i1 %178, label %185, label %180

180:                                              ; preds = %179
  store i8 0, ptr %22, align 1, !tbaa !11
  br label %185

181:                                              ; preds = %177, %172
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %14, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %199

185:                                              ; preds = %180, %179
  br label %186

186:                                              ; preds = %185
  %187 = load i32, ptr %23, align 4, !tbaa !15
  %188 = add nsw i32 %187, 1
  store i32 %188, ptr %23, align 4, !tbaa !15
  br label %167, !llvm.loop !25

189:                                              ; preds = %171
  %190 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef 0)
          to label %191 unwind label %195

191:                                              ; preds = %189
  %192 = load i8, ptr %22, align 1, !tbaa !11, !range !23, !noundef !24
  %193 = trunc i8 %192 to i1
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %190, i1 noundef zeroext %193)
          to label %194 unwind label %195

194:                                              ; preds = %191
  store i32 3, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %208

195:                                              ; preds = %191, %189
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %14, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %15, align 4
  br label %199

199:                                              ; preds = %195, %181
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %2748

200:                                              ; preds = %50, %50, %50, %50, %50, %50, %50, %50, %50, %50, %50, %50, %50, %50, %50
  store ptr null, ptr %4, align 8
  store i32 1, ptr %11, align 4
  br label %2747

201:                                              ; preds = %50
  %202 = load i8, ptr %9, align 1, !tbaa !11, !range !23, !noundef !24
  %203 = trunc i8 %202 to i1
  br i1 %203, label %204, label %205

204:                                              ; preds = %201
  br label %207

205:                                              ; preds = %201
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str.1, i32 noundef 487, ptr noundef @__PRETTY_FUNCTION__._ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE) #9
  unreachable

206:                                              ; No predecessors!
  br label %207

207:                                              ; preds = %206, %204
  br label %208

208:                                              ; preds = %207, %194, %160, %129
  %209 = load i8, ptr %9, align 1, !tbaa !11, !range !23, !noundef !24
  %210 = trunc i8 %209 to i1
  br i1 %210, label %212, label %211

211:                                              ; preds = %208
  store i32 0, ptr %10, align 4, !tbaa !15
  br label %212

212:                                              ; preds = %211, %208
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 0, ptr %24, align 4, !tbaa !15
  br label %213

213:                                              ; preds = %2701, %212
  %214 = load i32, ptr %24, align 4, !tbaa !15
  %215 = load i32, ptr %10, align 4, !tbaa !15
  %216 = icmp slt i32 %214, %215
  br i1 %216, label %218, label %217

217:                                              ; preds = %213
  store i32 16, ptr %11, align 4
  br label %2704

218:                                              ; preds = %213
  %219 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %219, label %2699 [
    i32 7, label %220
    i32 8, label %383
    i32 9, label %383
    i32 10, label %410
    i32 186, label %426
    i32 187, label %441
    i32 188, label %456
    i32 189, label %470
    i32 190, label %484
    i32 191, label %498
    i32 192, label %512
    i32 193, label %526
    i32 282, label %540
    i32 283, label %540
    i32 284, label %540
    i32 285, label %540
    i32 286, label %540
    i32 287, label %540
    i32 288, label %540
    i32 289, label %540
    i32 290, label %540
    i32 201, label %546
    i32 202, label %560
    i32 203, label %574
    i32 204, label %588
    i32 205, label %602
    i32 206, label %616
    i32 207, label %631
    i32 208, label %689
    i32 209, label %756
    i32 210, label %770
    i32 211, label %808
    i32 212, label %823
    i32 213, label %878
    i32 214, label %892
    i32 222, label %913
    i32 223, label %928
    i32 20, label %943
    i32 21, label %957
    i32 31, label %971
    i32 32, label %985
    i32 83, label %999
    i32 87, label %1012
    i32 25, label %1025
    i32 26, label %1025
    i32 36, label %1039
    i32 37, label %1039
    i32 93, label %1053
    i32 94, label %1053
    i32 96, label %1067
    i32 97, label %1067
    i32 147, label %1081
    i32 137, label %1081
    i32 134, label %1094
    i32 144, label %1094
    i32 130, label %1108
    i32 140, label %1108
    i32 16, label %1122
    i32 17, label %1137
    i32 18, label %1152
    i32 19, label %1167
    i32 22, label %1182
    i32 23, label %1196
    i32 24, label %1210
    i32 27, label %1224
    i32 28, label %1238
    i32 29, label %1252
    i32 30, label %1266
    i32 33, label %1280
    i32 34, label %1294
    i32 35, label %1308
    i32 38, label %1322
    i32 39, label %1336
    i32 40, label %1350
    i32 41, label %1364
    i32 42, label %1377
    i32 43, label %1391
    i32 44, label %1405
    i32 45, label %1419
    i32 46, label %1432
    i32 47, label %1446
    i32 48, label %1460
    i32 49, label %1474
    i32 50, label %1488
    i32 51, label %1502
    i32 52, label %1516
    i32 53, label %1530
    i32 54, label %1544
    i32 55, label %1558
    i32 56, label %1572
    i32 57, label %1586
    i32 58, label %1600
    i32 59, label %1614
    i32 60, label %1628
    i32 61, label %1642
    i32 62, label %1656
    i32 63, label %1669
    i32 64, label %1683
    i32 65, label %1697
    i32 66, label %1711
    i32 67, label %1724
    i32 68, label %1738
    i32 69, label %1752
    i32 70, label %1766
    i32 71, label %1780
    i32 72, label %1794
    i32 73, label %1808
    i32 74, label %1822
    i32 75, label %1836
    i32 76, label %1850
    i32 77, label %1864
    i32 78, label %1878
    i32 79, label %1892
    i32 80, label %1906
    i32 81, label %1920
    i32 82, label %1934
    i32 84, label %1949
    i32 85, label %1963
    i32 86, label %1977
    i32 88, label %1991
    i32 89, label %2005
    i32 90, label %2019
    i32 91, label %2033
    i32 92, label %2047
    i32 95, label %2061
    i32 98, label %2075
    i32 99, label %2089
    i32 100, label %2103
    i32 101, label %2117
    i32 102, label %2131
    i32 103, label %2145
    i32 104, label %2159
    i32 105, label %2172
    i32 106, label %2186
    i32 107, label %2200
    i32 108, label %2214
    i32 109, label %2227
    i32 110, label %2241
    i32 111, label %2255
    i32 112, label %2269
    i32 113, label %2283
    i32 114, label %2297
    i32 115, label %2311
    i32 116, label %2325
    i32 117, label %2339
    i32 118, label %2353
    i32 119, label %2367
    i32 120, label %2381
    i32 121, label %2395
    i32 122, label %2409
    i32 123, label %2423
    i32 124, label %2437
    i32 125, label %2451
    i32 126, label %2465
    i32 127, label %2478
    i32 128, label %2491
    i32 129, label %2505
    i32 131, label %2519
    i32 132, label %2533
    i32 133, label %2547
    i32 135, label %2561
    i32 136, label %2575
    i32 138, label %2588
    i32 139, label %2602
    i32 141, label %2616
    i32 142, label %2630
    i32 143, label %2644
    i32 145, label %2658
    i32 146, label %2672
    i32 149, label %2685
    i32 148, label %2685
    i32 571, label %2685
    i32 194, label %2698
    i32 195, label %2698
    i32 196, label %2698
    i32 197, label %2698
    i32 198, label %2698
    i32 199, label %2698
    i32 227, label %2698
    i32 228, label %2698
    i32 229, label %2698
    i32 230, label %2698
    i32 231, label %2698
    i32 232, label %2698
    i32 233, label %2698
    i32 234, label %2698
    i32 235, label %2698
    i32 236, label %2698
    i32 237, label %2698
    i32 238, label %2698
  ]

220:                                              ; preds = %218
  %221 = load ptr, ptr %32, align 8, !tbaa !13
  %222 = getelementptr inbounds ptr, ptr %221, i64 30
  %223 = load ptr, ptr %222, align 8
  %224 = invoke noundef nonnull align 8 dereferenceable(144) ptr %223(ptr noundef nonnull align 8 dereferenceable(176) %32)
          to label %225 unwind label %231

225:                                              ; preds = %220
  %226 = load ptr, ptr %224, align 8, !tbaa !13
  %227 = getelementptr inbounds ptr, ptr %226, i64 7
  %228 = load ptr, ptr %227, align 8
  %229 = invoke noundef i32 %228(ptr noundef nonnull align 8 dereferenceable(144) %224)
          to label %230 unwind label %231

230:                                              ; preds = %225
  switch i32 %229, label %381 [
    i32 2, label %235
    i32 3, label %235
    i32 1, label %235
    i32 8, label %249
    i32 9, label %275
    i32 4, label %289
    i32 5, label %305
    i32 6, label %321
    i32 7, label %337
    i32 10, label %353
    i32 11, label %367
  ]

231:                                              ; preds = %2696, %2694, %2689, %2685, %2683, %2681, %2676, %2672, %2669, %2667, %2662, %2658, %2655, %2653, %2648, %2644, %2641, %2639, %2634, %2630, %2627, %2625, %2620, %2616, %2613, %2611, %2606, %2602, %2599, %2597, %2592, %2588, %2586, %2584, %2579, %2575, %2572, %2570, %2565, %2561, %2558, %2556, %2551, %2547, %2544, %2542, %2537, %2533, %2530, %2528, %2523, %2519, %2516, %2514, %2509, %2505, %2502, %2500, %2495, %2491, %2489, %2487, %2482, %2478, %2476, %2474, %2469, %2465, %2462, %2460, %2455, %2451, %2448, %2446, %2441, %2437, %2434, %2432, %2427, %2423, %2420, %2418, %2413, %2409, %2406, %2404, %2399, %2395, %2392, %2390, %2385, %2381, %2378, %2376, %2371, %2367, %2364, %2362, %2357, %2353, %2350, %2348, %2343, %2339, %2336, %2334, %2329, %2325, %2322, %2320, %2315, %2311, %2308, %2306, %2301, %2297, %2294, %2292, %2287, %2283, %2280, %2278, %2273, %2269, %2266, %2264, %2259, %2255, %2252, %2250, %2245, %2241, %2238, %2236, %2231, %2227, %2225, %2223, %2218, %2214, %2211, %2209, %2204, %2200, %2197, %2195, %2190, %2186, %2183, %2181, %2176, %2172, %2170, %2168, %2163, %2159, %2156, %2154, %2149, %2145, %2142, %2140, %2135, %2131, %2128, %2126, %2121, %2117, %2114, %2112, %2107, %2103, %2100, %2098, %2093, %2089, %2086, %2084, %2079, %2075, %2072, %2070, %2065, %2061, %2058, %2056, %2051, %2047, %2044, %2042, %2037, %2033, %2030, %2028, %2023, %2019, %2016, %2014, %2009, %2005, %2002, %2000, %1995, %1991, %1988, %1986, %1981, %1977, %1974, %1972, %1967, %1963, %1960, %1958, %1953, %1949, %1945, %1943, %1938, %1934, %1931, %1929, %1924, %1920, %1917, %1915, %1910, %1906, %1903, %1901, %1896, %1892, %1889, %1887, %1882, %1878, %1875, %1873, %1868, %1864, %1861, %1859, %1854, %1850, %1847, %1845, %1840, %1836, %1833, %1831, %1826, %1822, %1819, %1817, %1812, %1808, %1805, %1803, %1798, %1794, %1791, %1789, %1784, %1780, %1777, %1775, %1770, %1766, %1763, %1761, %1756, %1752, %1749, %1747, %1742, %1738, %1735, %1733, %1728, %1724, %1722, %1720, %1715, %1711, %1708, %1706, %1701, %1697, %1694, %1692, %1687, %1683, %1680, %1678, %1673, %1669, %1667, %1665, %1660, %1656, %1653, %1651, %1646, %1642, %1639, %1637, %1632, %1628, %1625, %1623, %1618, %1614, %1611, %1609, %1604, %1600, %1597, %1595, %1590, %1586, %1583, %1581, %1576, %1572, %1569, %1567, %1562, %1558, %1555, %1553, %1548, %1544, %1541, %1539, %1534, %1530, %1527, %1525, %1520, %1516, %1513, %1511, %1506, %1502, %1499, %1497, %1492, %1488, %1485, %1483, %1478, %1474, %1471, %1469, %1464, %1460, %1457, %1455, %1450, %1446, %1443, %1441, %1436, %1432, %1430, %1428, %1423, %1419, %1416, %1414, %1409, %1405, %1402, %1400, %1395, %1391, %1388, %1386, %1381, %1377, %1375, %1373, %1368, %1364, %1361, %1359, %1354, %1350, %1347, %1345, %1340, %1336, %1333, %1331, %1326, %1322, %1319, %1317, %1312, %1308, %1305, %1303, %1298, %1294, %1291, %1289, %1284, %1280, %1277, %1275, %1270, %1266, %1263, %1261, %1256, %1252, %1249, %1247, %1242, %1238, %1235, %1233, %1228, %1224, %1221, %1219, %1214, %1210, %1207, %1205, %1200, %1196, %1193, %1191, %1186, %1182, %1178, %1176, %1171, %1167, %1163, %1161, %1156, %1152, %1148, %1146, %1141, %1137, %1133, %1131, %1126, %1122, %1119, %1117, %1112, %1108, %1105, %1103, %1098, %1094, %1092, %1090, %1085, %1081, %1078, %1076, %1071, %1067, %1064, %1062, %1057, %1053, %1050, %1048, %1043, %1039, %1036, %1034, %1029, %1025, %1023, %1021, %1016, %1012, %1010, %1008, %1003, %999, %996, %994, %989, %985, %982, %980, %975, %971, %968, %966, %961, %957, %954, %952, %947, %943, %941, %939, %937, %932, %928, %926, %924, %922, %917, %913, %889, %887, %882, %878, %819, %817, %812, %808, %804, %802, %797, %793, %790, %788, %783, %779, %775, %770, %767, %765, %760, %756, %752, %746, %741, %736, %731, %727, %723, %717, %712, %707, %702, %698, %694, %689, %682, %677, %674, %672, %667, %663, %659, %654, %651, %649, %644, %640, %636, %631, %627, %625, %620, %616, %613, %611, %606, %602, %599, %597, %592, %588, %585, %583, %578, %574, %571, %569, %564, %560, %557, %555, %550, %546, %544, %540, %537, %535, %530, %526, %523, %521, %516, %512, %509, %507, %502, %498, %495, %493, %488, %484, %481, %479, %474, %470, %467, %465, %460, %456, %452, %450, %445, %441, %437, %435, %430, %426, %405, %403, %398, %394, %388, %383, %378, %376, %371, %367, %364, %362, %357, %353, %348, %346, %341, %337, %332, %330, %325, %321, %316, %314, %309, %305, %300, %298, %293, %289, %286, %284, %279, %275, %272, %268, %263, %258, %253, %249, %246, %244, %239, %235, %225, %220
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %14, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %15, align 4
  br label %2706

235:                                              ; preds = %230, %230, %230
  %236 = load i32, ptr %24, align 4, !tbaa !15
  %237 = sext i32 %236 to i64
  %238 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %237)
          to label %239 unwind label %231

239:                                              ; preds = %235
  %240 = load ptr, ptr %13, align 8, !tbaa !5
  %241 = load i32, ptr %24, align 4, !tbaa !15
  %242 = sext i32 %241 to i64
  %243 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %240, i64 noundef %242)
          to label %244 unwind label %231

244:                                              ; preds = %239
  %245 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %243)
          to label %246 unwind label %231

246:                                              ; preds = %244
  %247 = fneg double %245
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %238, double noundef %247)
          to label %248 unwind label %231

248:                                              ; preds = %246
  br label %382

249:                                              ; preds = %230
  %250 = load i32, ptr %24, align 4, !tbaa !15
  %251 = sext i32 %250 to i64
  %252 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %251)
          to label %253 unwind label %231

253:                                              ; preds = %249
  %254 = load ptr, ptr %13, align 8, !tbaa !5
  %255 = load i32, ptr %24, align 4, !tbaa !15
  %256 = sext i32 %255 to i64
  %257 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %254, i64 noundef %256)
          to label %258 unwind label %231

258:                                              ; preds = %253
  %259 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %257)
          to label %260 unwind label %231

260:                                              ; preds = %258
  %261 = icmp eq i32 %259, -2147483648
  br i1 %261, label %262, label %263

262:                                              ; preds = %260
  br label %272

263:                                              ; preds = %260
  %264 = load ptr, ptr %13, align 8, !tbaa !5
  %265 = load i32, ptr %24, align 4, !tbaa !15
  %266 = sext i32 %265 to i64
  %267 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %264, i64 noundef %266)
          to label %268 unwind label %231

268:                                              ; preds = %263
  %269 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %267)
          to label %270 unwind label %231

270:                                              ; preds = %268
  %271 = sub nsw i32 0, %269
  br label %272

272:                                              ; preds = %270, %262
  %273 = phi i32 [ -2147483648, %262 ], [ %271, %270 ]
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %252, i32 noundef %273)
          to label %274 unwind label %231

274:                                              ; preds = %272
  br label %382

275:                                              ; preds = %230
  %276 = load i32, ptr %24, align 4, !tbaa !15
  %277 = sext i32 %276 to i64
  %278 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %277)
          to label %279 unwind label %231

279:                                              ; preds = %275
  %280 = load ptr, ptr %13, align 8, !tbaa !5
  %281 = load i32, ptr %24, align 4, !tbaa !15
  %282 = sext i32 %281 to i64
  %283 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %280, i64 noundef %282)
          to label %284 unwind label %231

284:                                              ; preds = %279
  %285 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %283)
          to label %286 unwind label %231

286:                                              ; preds = %284
  %287 = sub nsw i32 0, %285
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %278, i32 noundef %287)
          to label %288 unwind label %231

288:                                              ; preds = %286
  br label %382

289:                                              ; preds = %230
  %290 = load i32, ptr %24, align 4, !tbaa !15
  %291 = sext i32 %290 to i64
  %292 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %291)
          to label %293 unwind label %231

293:                                              ; preds = %289
  %294 = load ptr, ptr %13, align 8, !tbaa !5
  %295 = load i32, ptr %24, align 4, !tbaa !15
  %296 = sext i32 %295 to i64
  %297 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %294, i64 noundef %296)
          to label %298 unwind label %231

298:                                              ; preds = %293
  %299 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %297)
          to label %300 unwind label %231

300:                                              ; preds = %298
  %301 = sext i8 %299 to i32
  %302 = sub nsw i32 0, %301
  %303 = trunc i32 %302 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %292, i8 noundef signext %303)
          to label %304 unwind label %231

304:                                              ; preds = %300
  br label %382

305:                                              ; preds = %230
  %306 = load i32, ptr %24, align 4, !tbaa !15
  %307 = sext i32 %306 to i64
  %308 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %307)
          to label %309 unwind label %231

309:                                              ; preds = %305
  %310 = load ptr, ptr %13, align 8, !tbaa !5
  %311 = load i32, ptr %24, align 4, !tbaa !15
  %312 = sext i32 %311 to i64
  %313 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %310, i64 noundef %312)
          to label %314 unwind label %231

314:                                              ; preds = %309
  %315 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %313)
          to label %316 unwind label %231

316:                                              ; preds = %314
  %317 = zext i8 %315 to i32
  %318 = sub nsw i32 0, %317
  %319 = trunc i32 %318 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %308, i8 noundef zeroext %319)
          to label %320 unwind label %231

320:                                              ; preds = %316
  br label %382

321:                                              ; preds = %230
  %322 = load i32, ptr %24, align 4, !tbaa !15
  %323 = sext i32 %322 to i64
  %324 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %323)
          to label %325 unwind label %231

325:                                              ; preds = %321
  %326 = load ptr, ptr %13, align 8, !tbaa !5
  %327 = load i32, ptr %24, align 4, !tbaa !15
  %328 = sext i32 %327 to i64
  %329 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %326, i64 noundef %328)
          to label %330 unwind label %231

330:                                              ; preds = %325
  %331 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %329)
          to label %332 unwind label %231

332:                                              ; preds = %330
  %333 = sext i16 %331 to i32
  %334 = sub nsw i32 0, %333
  %335 = trunc i32 %334 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %324, i16 noundef signext %335)
          to label %336 unwind label %231

336:                                              ; preds = %332
  br label %382

337:                                              ; preds = %230
  %338 = load i32, ptr %24, align 4, !tbaa !15
  %339 = sext i32 %338 to i64
  %340 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %339)
          to label %341 unwind label %231

341:                                              ; preds = %337
  %342 = load ptr, ptr %13, align 8, !tbaa !5
  %343 = load i32, ptr %24, align 4, !tbaa !15
  %344 = sext i32 %343 to i64
  %345 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %342, i64 noundef %344)
          to label %346 unwind label %231

346:                                              ; preds = %341
  %347 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %345)
          to label %348 unwind label %231

348:                                              ; preds = %346
  %349 = zext i16 %347 to i32
  %350 = sub nsw i32 0, %349
  %351 = trunc i32 %350 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %340, i16 noundef zeroext %351)
          to label %352 unwind label %231

352:                                              ; preds = %348
  br label %382

353:                                              ; preds = %230
  %354 = load i32, ptr %24, align 4, !tbaa !15
  %355 = sext i32 %354 to i64
  %356 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %355)
          to label %357 unwind label %231

357:                                              ; preds = %353
  %358 = load ptr, ptr %13, align 8, !tbaa !5
  %359 = load i32, ptr %24, align 4, !tbaa !15
  %360 = sext i32 %359 to i64
  %361 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %358, i64 noundef %360)
          to label %362 unwind label %231

362:                                              ; preds = %357
  %363 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %361)
          to label %364 unwind label %231

364:                                              ; preds = %362
  %365 = sub nsw i64 0, %363
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %356, i64 noundef %365)
          to label %366 unwind label %231

366:                                              ; preds = %364
  br label %382

367:                                              ; preds = %230
  %368 = load i32, ptr %24, align 4, !tbaa !15
  %369 = sext i32 %368 to i64
  %370 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %369)
          to label %371 unwind label %231

371:                                              ; preds = %367
  %372 = load ptr, ptr %13, align 8, !tbaa !5
  %373 = load i32, ptr %24, align 4, !tbaa !15
  %374 = sext i32 %373 to i64
  %375 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %372, i64 noundef %374)
          to label %376 unwind label %231

376:                                              ; preds = %371
  %377 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %375)
          to label %378 unwind label %231

378:                                              ; preds = %376
  %379 = sub nsw i64 0, %377
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %370, i64 noundef %379)
          to label %380 unwind label %231

380:                                              ; preds = %378
  br label %382

381:                                              ; preds = %230
  store ptr null, ptr %4, align 8
  store i32 1, ptr %11, align 4
  br label %2704

382:                                              ; preds = %380, %366, %352, %336, %320, %304, %288, %274, %248
  br label %2700

383:                                              ; preds = %218, %218
  %384 = load ptr, ptr %32, align 8, !tbaa !13
  %385 = getelementptr inbounds ptr, ptr %384, i64 30
  %386 = load ptr, ptr %385, align 8
  %387 = invoke noundef nonnull align 8 dereferenceable(144) ptr %386(ptr noundef nonnull align 8 dereferenceable(176) %32)
          to label %388 unwind label %231

388:                                              ; preds = %383
  %389 = load ptr, ptr %387, align 8, !tbaa !13
  %390 = getelementptr inbounds ptr, ptr %389, i64 7
  %391 = load ptr, ptr %390, align 8
  %392 = invoke noundef i32 %391(ptr noundef nonnull align 8 dereferenceable(144) %387)
          to label %393 unwind label %231

393:                                              ; preds = %388
  switch i32 %392, label %408 [
    i32 12, label %394
  ]

394:                                              ; preds = %393
  %395 = load i32, ptr %24, align 4, !tbaa !15
  %396 = sext i32 %395 to i64
  %397 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %396)
          to label %398 unwind label %231

398:                                              ; preds = %394
  %399 = load ptr, ptr %13, align 8, !tbaa !5
  %400 = load i32, ptr %24, align 4, !tbaa !15
  %401 = sext i32 %400 to i64
  %402 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %399, i64 noundef %401)
          to label %403 unwind label %231

403:                                              ; preds = %398
  %404 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %402)
          to label %405 unwind label %231

405:                                              ; preds = %403
  %406 = xor i1 %404, true
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %397, i1 noundef zeroext %406)
          to label %407 unwind label %231

407:                                              ; preds = %405
  br label %409

408:                                              ; preds = %393
  store ptr null, ptr %4, align 8
  store i32 1, ptr %11, align 4
  br label %2704

409:                                              ; preds = %407
  br label %2700

410:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #8
  %411 = load ptr, ptr %13, align 8, !tbaa !5
  %412 = load i32, ptr %24, align 4, !tbaa !15
  %413 = sext i32 %412 to i64
  %414 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %411, i64 noundef %413)
          to label %415 unwind label %422

415:                                              ; preds = %410
  %416 = invoke { i64, i32 } @_ZNK7glslang11TConstUnioncoEv(ptr noundef nonnull align 8 dereferenceable(12) %414)
          to label %417 unwind label %422

417:                                              ; preds = %415
  store { i64, i32 } %416, ptr %26, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %26, i64 12, i1 false)
  %418 = load i32, ptr %24, align 4, !tbaa !15
  %419 = sext i32 %418 to i64
  %420 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %419)
          to label %421 unwind label %422

421:                                              ; preds = %417
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %420, ptr align 8 %25, i64 12, i1 false), !tbaa.struct !26
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #8
  br label %2700

422:                                              ; preds = %417, %415, %410
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %14, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #8
  br label %2706

426:                                              ; preds = %218
  %427 = load i32, ptr %24, align 4, !tbaa !15
  %428 = sext i32 %427 to i64
  %429 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %428)
          to label %430 unwind label %231

430:                                              ; preds = %426
  %431 = load ptr, ptr %13, align 8, !tbaa !5
  %432 = load i32, ptr %24, align 4, !tbaa !15
  %433 = sext i32 %432 to i64
  %434 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %431, i64 noundef %433)
          to label %435 unwind label %231

435:                                              ; preds = %430
  %436 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %434)
          to label %437 unwind label %231

437:                                              ; preds = %435
  %438 = fmul double %436, 0x400921FB54442D18
  %439 = fdiv double %438, 1.800000e+02
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %429, double noundef %439)
          to label %440 unwind label %231

440:                                              ; preds = %437
  br label %2700

441:                                              ; preds = %218
  %442 = load i32, ptr %24, align 4, !tbaa !15
  %443 = sext i32 %442 to i64
  %444 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %443)
          to label %445 unwind label %231

445:                                              ; preds = %441
  %446 = load ptr, ptr %13, align 8, !tbaa !5
  %447 = load i32, ptr %24, align 4, !tbaa !15
  %448 = sext i32 %447 to i64
  %449 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %446, i64 noundef %448)
          to label %450 unwind label %231

450:                                              ; preds = %445
  %451 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %449)
          to label %452 unwind label %231

452:                                              ; preds = %450
  %453 = fmul double %451, 1.800000e+02
  %454 = fdiv double %453, 0x400921FB54442D18
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %444, double noundef %454)
          to label %455 unwind label %231

455:                                              ; preds = %452
  br label %2700

456:                                              ; preds = %218
  %457 = load i32, ptr %24, align 4, !tbaa !15
  %458 = sext i32 %457 to i64
  %459 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %458)
          to label %460 unwind label %231

460:                                              ; preds = %456
  %461 = load ptr, ptr %13, align 8, !tbaa !5
  %462 = load i32, ptr %24, align 4, !tbaa !15
  %463 = sext i32 %462 to i64
  %464 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %461, i64 noundef %463)
          to label %465 unwind label %231

465:                                              ; preds = %460
  %466 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %464)
          to label %467 unwind label %231

467:                                              ; preds = %465
  %468 = call double @sin(double noundef %466) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %459, double noundef %468)
          to label %469 unwind label %231

469:                                              ; preds = %467
  br label %2700

470:                                              ; preds = %218
  %471 = load i32, ptr %24, align 4, !tbaa !15
  %472 = sext i32 %471 to i64
  %473 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %472)
          to label %474 unwind label %231

474:                                              ; preds = %470
  %475 = load ptr, ptr %13, align 8, !tbaa !5
  %476 = load i32, ptr %24, align 4, !tbaa !15
  %477 = sext i32 %476 to i64
  %478 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %475, i64 noundef %477)
          to label %479 unwind label %231

479:                                              ; preds = %474
  %480 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %478)
          to label %481 unwind label %231

481:                                              ; preds = %479
  %482 = call double @cos(double noundef %480) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %473, double noundef %482)
          to label %483 unwind label %231

483:                                              ; preds = %481
  br label %2700

484:                                              ; preds = %218
  %485 = load i32, ptr %24, align 4, !tbaa !15
  %486 = sext i32 %485 to i64
  %487 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %486)
          to label %488 unwind label %231

488:                                              ; preds = %484
  %489 = load ptr, ptr %13, align 8, !tbaa !5
  %490 = load i32, ptr %24, align 4, !tbaa !15
  %491 = sext i32 %490 to i64
  %492 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %489, i64 noundef %491)
          to label %493 unwind label %231

493:                                              ; preds = %488
  %494 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %492)
          to label %495 unwind label %231

495:                                              ; preds = %493
  %496 = call double @tan(double noundef %494) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %487, double noundef %496)
          to label %497 unwind label %231

497:                                              ; preds = %495
  br label %2700

498:                                              ; preds = %218
  %499 = load i32, ptr %24, align 4, !tbaa !15
  %500 = sext i32 %499 to i64
  %501 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %500)
          to label %502 unwind label %231

502:                                              ; preds = %498
  %503 = load ptr, ptr %13, align 8, !tbaa !5
  %504 = load i32, ptr %24, align 4, !tbaa !15
  %505 = sext i32 %504 to i64
  %506 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %503, i64 noundef %505)
          to label %507 unwind label %231

507:                                              ; preds = %502
  %508 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %506)
          to label %509 unwind label %231

509:                                              ; preds = %507
  %510 = call double @asin(double noundef %508) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %501, double noundef %510)
          to label %511 unwind label %231

511:                                              ; preds = %509
  br label %2700

512:                                              ; preds = %218
  %513 = load i32, ptr %24, align 4, !tbaa !15
  %514 = sext i32 %513 to i64
  %515 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %514)
          to label %516 unwind label %231

516:                                              ; preds = %512
  %517 = load ptr, ptr %13, align 8, !tbaa !5
  %518 = load i32, ptr %24, align 4, !tbaa !15
  %519 = sext i32 %518 to i64
  %520 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %517, i64 noundef %519)
          to label %521 unwind label %231

521:                                              ; preds = %516
  %522 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %520)
          to label %523 unwind label %231

523:                                              ; preds = %521
  %524 = call double @acos(double noundef %522) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %515, double noundef %524)
          to label %525 unwind label %231

525:                                              ; preds = %523
  br label %2700

526:                                              ; preds = %218
  %527 = load i32, ptr %24, align 4, !tbaa !15
  %528 = sext i32 %527 to i64
  %529 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %528)
          to label %530 unwind label %231

530:                                              ; preds = %526
  %531 = load ptr, ptr %13, align 8, !tbaa !5
  %532 = load i32, ptr %24, align 4, !tbaa !15
  %533 = sext i32 %532 to i64
  %534 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %531, i64 noundef %533)
          to label %535 unwind label %231

535:                                              ; preds = %530
  %536 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %534)
          to label %537 unwind label %231

537:                                              ; preds = %535
  %538 = call double @atan(double noundef %536) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %529, double noundef %538)
          to label %539 unwind label %231

539:                                              ; preds = %537
  br label %2700

540:                                              ; preds = %218, %218, %218, %218, %218, %218, %218, %218, %218
  %541 = load i32, ptr %24, align 4, !tbaa !15
  %542 = sext i32 %541 to i64
  %543 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %542)
          to label %544 unwind label %231

544:                                              ; preds = %540
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %543, double noundef 0.000000e+00)
          to label %545 unwind label %231

545:                                              ; preds = %544
  br label %2700

546:                                              ; preds = %218
  %547 = load i32, ptr %24, align 4, !tbaa !15
  %548 = sext i32 %547 to i64
  %549 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %548)
          to label %550 unwind label %231

550:                                              ; preds = %546
  %551 = load ptr, ptr %13, align 8, !tbaa !5
  %552 = load i32, ptr %24, align 4, !tbaa !15
  %553 = sext i32 %552 to i64
  %554 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %551, i64 noundef %553)
          to label %555 unwind label %231

555:                                              ; preds = %550
  %556 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %554)
          to label %557 unwind label %231

557:                                              ; preds = %555
  %558 = call double @exp(double noundef %556) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %549, double noundef %558)
          to label %559 unwind label %231

559:                                              ; preds = %557
  br label %2700

560:                                              ; preds = %218
  %561 = load i32, ptr %24, align 4, !tbaa !15
  %562 = sext i32 %561 to i64
  %563 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %562)
          to label %564 unwind label %231

564:                                              ; preds = %560
  %565 = load ptr, ptr %13, align 8, !tbaa !5
  %566 = load i32, ptr %24, align 4, !tbaa !15
  %567 = sext i32 %566 to i64
  %568 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %565, i64 noundef %567)
          to label %569 unwind label %231

569:                                              ; preds = %564
  %570 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %568)
          to label %571 unwind label %231

571:                                              ; preds = %569
  %572 = call double @log(double noundef %570) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %563, double noundef %572)
          to label %573 unwind label %231

573:                                              ; preds = %571
  br label %2700

574:                                              ; preds = %218
  %575 = load i32, ptr %24, align 4, !tbaa !15
  %576 = sext i32 %575 to i64
  %577 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %576)
          to label %578 unwind label %231

578:                                              ; preds = %574
  %579 = load ptr, ptr %13, align 8, !tbaa !5
  %580 = load i32, ptr %24, align 4, !tbaa !15
  %581 = sext i32 %580 to i64
  %582 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %579, i64 noundef %581)
          to label %583 unwind label %231

583:                                              ; preds = %578
  %584 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %582)
          to label %585 unwind label %231

585:                                              ; preds = %583
  %586 = call double @exp2(double noundef %584) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %577, double noundef %586)
          to label %587 unwind label %231

587:                                              ; preds = %585
  br label %2700

588:                                              ; preds = %218
  %589 = load i32, ptr %24, align 4, !tbaa !15
  %590 = sext i32 %589 to i64
  %591 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %590)
          to label %592 unwind label %231

592:                                              ; preds = %588
  %593 = load ptr, ptr %13, align 8, !tbaa !5
  %594 = load i32, ptr %24, align 4, !tbaa !15
  %595 = sext i32 %594 to i64
  %596 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %593, i64 noundef %595)
          to label %597 unwind label %231

597:                                              ; preds = %592
  %598 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %596)
          to label %599 unwind label %231

599:                                              ; preds = %597
  %600 = call double @log2(double noundef %598) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %591, double noundef %600)
          to label %601 unwind label %231

601:                                              ; preds = %599
  br label %2700

602:                                              ; preds = %218
  %603 = load i32, ptr %24, align 4, !tbaa !15
  %604 = sext i32 %603 to i64
  %605 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %604)
          to label %606 unwind label %231

606:                                              ; preds = %602
  %607 = load ptr, ptr %13, align 8, !tbaa !5
  %608 = load i32, ptr %24, align 4, !tbaa !15
  %609 = sext i32 %608 to i64
  %610 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %607, i64 noundef %609)
          to label %611 unwind label %231

611:                                              ; preds = %606
  %612 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %610)
          to label %613 unwind label %231

613:                                              ; preds = %611
  %614 = call double @sqrt(double noundef %612) #8
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %605, double noundef %614)
          to label %615 unwind label %231

615:                                              ; preds = %613
  br label %2700

616:                                              ; preds = %218
  %617 = load i32, ptr %24, align 4, !tbaa !15
  %618 = sext i32 %617 to i64
  %619 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %618)
          to label %620 unwind label %231

620:                                              ; preds = %616
  %621 = load ptr, ptr %13, align 8, !tbaa !5
  %622 = load i32, ptr %24, align 4, !tbaa !15
  %623 = sext i32 %622 to i64
  %624 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %621, i64 noundef %623)
          to label %625 unwind label %231

625:                                              ; preds = %620
  %626 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %624)
          to label %627 unwind label %231

627:                                              ; preds = %625
  %628 = call double @sqrt(double noundef %626) #8
  %629 = fdiv double 1.000000e+00, %628
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %619, double noundef %629)
          to label %630 unwind label %231

630:                                              ; preds = %627
  br label %2700

631:                                              ; preds = %218
  %632 = load ptr, ptr %13, align 8, !tbaa !5
  %633 = load i32, ptr %24, align 4, !tbaa !15
  %634 = sext i32 %633 to i64
  %635 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %632, i64 noundef %634)
          to label %636 unwind label %231

636:                                              ; preds = %631
  %637 = invoke noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %635)
          to label %638 unwind label %231

638:                                              ; preds = %636
  %639 = icmp eq i32 %637, 2
  br i1 %639, label %640, label %654

640:                                              ; preds = %638
  %641 = load i32, ptr %24, align 4, !tbaa !15
  %642 = sext i32 %641 to i64
  %643 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %642)
          to label %644 unwind label %231

644:                                              ; preds = %640
  %645 = load ptr, ptr %13, align 8, !tbaa !5
  %646 = load i32, ptr %24, align 4, !tbaa !15
  %647 = sext i32 %646 to i64
  %648 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %645, i64 noundef %647)
          to label %649 unwind label %231

649:                                              ; preds = %644
  %650 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %648)
          to label %651 unwind label %231

651:                                              ; preds = %649
  %652 = call double @llvm.fabs.f64(double %650)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %643, double noundef %652)
          to label %653 unwind label %231

653:                                              ; preds = %651
  br label %688

654:                                              ; preds = %638
  %655 = load ptr, ptr %13, align 8, !tbaa !5
  %656 = load i32, ptr %24, align 4, !tbaa !15
  %657 = sext i32 %656 to i64
  %658 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %655, i64 noundef %657)
          to label %659 unwind label %231

659:                                              ; preds = %654
  %660 = invoke noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %658)
          to label %661 unwind label %231

661:                                              ; preds = %659
  %662 = icmp eq i32 %660, 8
  br i1 %662, label %663, label %677

663:                                              ; preds = %661
  %664 = load i32, ptr %24, align 4, !tbaa !15
  %665 = sext i32 %664 to i64
  %666 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %665)
          to label %667 unwind label %231

667:                                              ; preds = %663
  %668 = load ptr, ptr %13, align 8, !tbaa !5
  %669 = load i32, ptr %24, align 4, !tbaa !15
  %670 = sext i32 %669 to i64
  %671 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %668, i64 noundef %670)
          to label %672 unwind label %231

672:                                              ; preds = %667
  %673 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %671)
          to label %674 unwind label %231

674:                                              ; preds = %672
  %675 = call i32 @llvm.abs.i32(i32 %673, i1 true)
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %666, i32 noundef %675)
          to label %676 unwind label %231

676:                                              ; preds = %674
  br label %687

677:                                              ; preds = %661
  %678 = load ptr, ptr %13, align 8, !tbaa !5
  %679 = load i32, ptr %24, align 4, !tbaa !15
  %680 = sext i32 %679 to i64
  %681 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %678, i64 noundef %680)
          to label %682 unwind label %231

682:                                              ; preds = %677
  %683 = load i32, ptr %24, align 4, !tbaa !15
  %684 = sext i32 %683 to i64
  %685 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %684)
          to label %686 unwind label %231

686:                                              ; preds = %682
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %685, ptr align 8 %681, i64 12, i1 false), !tbaa.struct !26
  br label %687

687:                                              ; preds = %686, %676
  br label %688

688:                                              ; preds = %687, %653
  br label %2700

689:                                              ; preds = %218
  %690 = load ptr, ptr %13, align 8, !tbaa !5
  %691 = load i32, ptr %24, align 4, !tbaa !15
  %692 = sext i32 %691 to i64
  %693 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %690, i64 noundef %692)
          to label %694 unwind label %231

694:                                              ; preds = %689
  %695 = invoke noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %693)
          to label %696 unwind label %231

696:                                              ; preds = %694
  %697 = icmp eq i32 %695, 2
  br i1 %697, label %698, label %727

698:                                              ; preds = %696
  %699 = load i32, ptr %24, align 4, !tbaa !15
  %700 = sext i32 %699 to i64
  %701 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %700)
          to label %702 unwind label %231

702:                                              ; preds = %698
  %703 = load ptr, ptr %13, align 8, !tbaa !5
  %704 = load i32, ptr %24, align 4, !tbaa !15
  %705 = sext i32 %704 to i64
  %706 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %703, i64 noundef %705)
          to label %707 unwind label %231

707:                                              ; preds = %702
  %708 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %706)
          to label %709 unwind label %231

709:                                              ; preds = %707
  %710 = fcmp oeq double %708, 0.000000e+00
  br i1 %710, label %711, label %712

711:                                              ; preds = %709
  br label %723

712:                                              ; preds = %709
  %713 = load ptr, ptr %13, align 8, !tbaa !5
  %714 = load i32, ptr %24, align 4, !tbaa !15
  %715 = sext i32 %714 to i64
  %716 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %713, i64 noundef %715)
          to label %717 unwind label %231

717:                                              ; preds = %712
  %718 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %716)
          to label %719 unwind label %231

719:                                              ; preds = %717
  %720 = fcmp olt double %718, 0.000000e+00
  %721 = zext i1 %720 to i64
  %722 = select i1 %720, i32 -1, i32 1
  br label %723

723:                                              ; preds = %719, %711
  %724 = phi i32 [ 0, %711 ], [ %722, %719 ]
  %725 = sitofp i32 %724 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %701, double noundef %725)
          to label %726 unwind label %231

726:                                              ; preds = %723
  br label %755

727:                                              ; preds = %696
  %728 = load i32, ptr %24, align 4, !tbaa !15
  %729 = sext i32 %728 to i64
  %730 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %729)
          to label %731 unwind label %231

731:                                              ; preds = %727
  %732 = load ptr, ptr %13, align 8, !tbaa !5
  %733 = load i32, ptr %24, align 4, !tbaa !15
  %734 = sext i32 %733 to i64
  %735 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %732, i64 noundef %734)
          to label %736 unwind label %231

736:                                              ; preds = %731
  %737 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %735)
          to label %738 unwind label %231

738:                                              ; preds = %736
  %739 = icmp eq i32 %737, 0
  br i1 %739, label %740, label %741

740:                                              ; preds = %738
  br label %752

741:                                              ; preds = %738
  %742 = load ptr, ptr %13, align 8, !tbaa !5
  %743 = load i32, ptr %24, align 4, !tbaa !15
  %744 = sext i32 %743 to i64
  %745 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %742, i64 noundef %744)
          to label %746 unwind label %231

746:                                              ; preds = %741
  %747 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %745)
          to label %748 unwind label %231

748:                                              ; preds = %746
  %749 = icmp slt i32 %747, 0
  %750 = zext i1 %749 to i64
  %751 = select i1 %749, i32 -1, i32 1
  br label %752

752:                                              ; preds = %748, %740
  %753 = phi i32 [ 0, %740 ], [ %751, %748 ]
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %730, i32 noundef %753)
          to label %754 unwind label %231

754:                                              ; preds = %752
  br label %755

755:                                              ; preds = %754, %726
  br label %2700

756:                                              ; preds = %218
  %757 = load i32, ptr %24, align 4, !tbaa !15
  %758 = sext i32 %757 to i64
  %759 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %758)
          to label %760 unwind label %231

760:                                              ; preds = %756
  %761 = load ptr, ptr %13, align 8, !tbaa !5
  %762 = load i32, ptr %24, align 4, !tbaa !15
  %763 = sext i32 %762 to i64
  %764 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %761, i64 noundef %763)
          to label %765 unwind label %231

765:                                              ; preds = %760
  %766 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %764)
          to label %767 unwind label %231

767:                                              ; preds = %765
  %768 = call double @llvm.floor.f64(double %766)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %759, double noundef %768)
          to label %769 unwind label %231

769:                                              ; preds = %767
  br label %2700

770:                                              ; preds = %218
  %771 = load ptr, ptr %13, align 8, !tbaa !5
  %772 = load i32, ptr %24, align 4, !tbaa !15
  %773 = sext i32 %772 to i64
  %774 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %771, i64 noundef %773)
          to label %775 unwind label %231

775:                                              ; preds = %770
  %776 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %774)
          to label %777 unwind label %231

777:                                              ; preds = %775
  %778 = fcmp ogt double %776, 0.000000e+00
  br i1 %778, label %779, label %793

779:                                              ; preds = %777
  %780 = load i32, ptr %24, align 4, !tbaa !15
  %781 = sext i32 %780 to i64
  %782 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %781)
          to label %783 unwind label %231

783:                                              ; preds = %779
  %784 = load ptr, ptr %13, align 8, !tbaa !5
  %785 = load i32, ptr %24, align 4, !tbaa !15
  %786 = sext i32 %785 to i64
  %787 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %784, i64 noundef %786)
          to label %788 unwind label %231

788:                                              ; preds = %783
  %789 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %787)
          to label %790 unwind label %231

790:                                              ; preds = %788
  %791 = call double @llvm.floor.f64(double %789)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %782, double noundef %791)
          to label %792 unwind label %231

792:                                              ; preds = %790
  br label %807

793:                                              ; preds = %777
  %794 = load i32, ptr %24, align 4, !tbaa !15
  %795 = sext i32 %794 to i64
  %796 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %795)
          to label %797 unwind label %231

797:                                              ; preds = %793
  %798 = load ptr, ptr %13, align 8, !tbaa !5
  %799 = load i32, ptr %24, align 4, !tbaa !15
  %800 = sext i32 %799 to i64
  %801 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %798, i64 noundef %800)
          to label %802 unwind label %231

802:                                              ; preds = %797
  %803 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %801)
          to label %804 unwind label %231

804:                                              ; preds = %802
  %805 = call double @llvm.ceil.f64(double %803)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %796, double noundef %805)
          to label %806 unwind label %231

806:                                              ; preds = %804
  br label %807

807:                                              ; preds = %806, %792
  br label %2700

808:                                              ; preds = %218
  %809 = load i32, ptr %24, align 4, !tbaa !15
  %810 = sext i32 %809 to i64
  %811 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %810)
          to label %812 unwind label %231

812:                                              ; preds = %808
  %813 = load ptr, ptr %13, align 8, !tbaa !5
  %814 = load i32, ptr %24, align 4, !tbaa !15
  %815 = sext i32 %814 to i64
  %816 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %813, i64 noundef %815)
          to label %817 unwind label %231

817:                                              ; preds = %812
  %818 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %816)
          to label %819 unwind label %231

819:                                              ; preds = %817
  %820 = fadd double 5.000000e-01, %818
  %821 = call double @llvm.floor.f64(double %820)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %811, double noundef %821)
          to label %822 unwind label %231

822:                                              ; preds = %819
  br label %2700

823:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %824 = load ptr, ptr %13, align 8, !tbaa !5
  %825 = load i32, ptr %24, align 4, !tbaa !15
  %826 = sext i32 %825 to i64
  %827 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %824, i64 noundef %826)
          to label %828 unwind label %869

828:                                              ; preds = %823
  %829 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %827)
          to label %830 unwind label %869

830:                                              ; preds = %828
  %831 = call double @llvm.floor.f64(double %829)
  store double %831, ptr %27, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #8
  %832 = load double, ptr %27, align 8, !tbaa !17
  %833 = fdiv double %832, 2.000000e+00
  %834 = load double, ptr %27, align 8, !tbaa !17
  %835 = fdiv double %834, 2.000000e+00
  %836 = call double @llvm.floor.f64(double %835)
  %837 = fcmp oeq double %833, %836
  %838 = zext i1 %837 to i8
  store i8 %838, ptr %28, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %839 = load i8, ptr %28, align 1, !tbaa !11, !range !23, !noundef !24
  %840 = trunc i8 %839 to i1
  br i1 %840, label %841, label %851

841:                                              ; preds = %830
  %842 = load ptr, ptr %13, align 8, !tbaa !5
  %843 = load i32, ptr %24, align 4, !tbaa !15
  %844 = sext i32 %843 to i64
  %845 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %842, i64 noundef %844)
          to label %846 unwind label %873

846:                                              ; preds = %841
  %847 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %845)
          to label %848 unwind label %873

848:                                              ; preds = %846
  %849 = fsub double %847, 5.000000e-01
  %850 = call double @llvm.ceil.f64(double %849)
  br label %861

851:                                              ; preds = %830
  %852 = load ptr, ptr %13, align 8, !tbaa !5
  %853 = load i32, ptr %24, align 4, !tbaa !15
  %854 = sext i32 %853 to i64
  %855 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %852, i64 noundef %854)
          to label %856 unwind label %873

856:                                              ; preds = %851
  %857 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %855)
          to label %858 unwind label %873

858:                                              ; preds = %856
  %859 = fadd double %857, 5.000000e-01
  %860 = call double @llvm.floor.f64(double %859)
  br label %861

861:                                              ; preds = %858, %848
  %862 = phi double [ %850, %848 ], [ %860, %858 ]
  store double %862, ptr %29, align 8, !tbaa !17
  %863 = load i32, ptr %24, align 4, !tbaa !15
  %864 = sext i32 %863 to i64
  %865 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %864)
          to label %866 unwind label %873

866:                                              ; preds = %861
  %867 = load double, ptr %29, align 8, !tbaa !17
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %865, double noundef %867)
          to label %868 unwind label %873

868:                                              ; preds = %866
  store i32 19, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %2700

869:                                              ; preds = %828, %823
  %870 = landingpad { ptr, i32 }
          cleanup
  %871 = extractvalue { ptr, i32 } %870, 0
  store ptr %871, ptr %14, align 8
  %872 = extractvalue { ptr, i32 } %870, 1
  store i32 %872, ptr %15, align 4
  br label %877

873:                                              ; preds = %866, %861, %856, %851, %846, %841
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %14, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  br label %877

877:                                              ; preds = %873, %869
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %2706

878:                                              ; preds = %218
  %879 = load i32, ptr %24, align 4, !tbaa !15
  %880 = sext i32 %879 to i64
  %881 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %880)
          to label %882 unwind label %231

882:                                              ; preds = %878
  %883 = load ptr, ptr %13, align 8, !tbaa !5
  %884 = load i32, ptr %24, align 4, !tbaa !15
  %885 = sext i32 %884 to i64
  %886 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %883, i64 noundef %885)
          to label %887 unwind label %231

887:                                              ; preds = %882
  %888 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %886)
          to label %889 unwind label %231

889:                                              ; preds = %887
  %890 = call double @llvm.ceil.f64(double %888)
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %881, double noundef %890)
          to label %891 unwind label %231

891:                                              ; preds = %889
  br label %2700

892:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %893 = load ptr, ptr %13, align 8, !tbaa !5
  %894 = load i32, ptr %24, align 4, !tbaa !15
  %895 = sext i32 %894 to i64
  %896 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %893, i64 noundef %895)
          to label %897 unwind label %909

897:                                              ; preds = %892
  %898 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %896)
          to label %899 unwind label %909

899:                                              ; preds = %897
  store double %898, ptr %30, align 8, !tbaa !17
  %900 = load i32, ptr %24, align 4, !tbaa !15
  %901 = sext i32 %900 to i64
  %902 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %901)
          to label %903 unwind label %909

903:                                              ; preds = %899
  %904 = load double, ptr %30, align 8, !tbaa !17
  %905 = load double, ptr %30, align 8, !tbaa !17
  %906 = call double @llvm.floor.f64(double %905)
  %907 = fsub double %904, %906
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %902, double noundef %907)
          to label %908 unwind label %909

908:                                              ; preds = %903
  store i32 19, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %2700

909:                                              ; preds = %903, %899, %897, %892
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %14, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %2706

913:                                              ; preds = %218
  %914 = load i32, ptr %24, align 4, !tbaa !15
  %915 = sext i32 %914 to i64
  %916 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %915)
          to label %917 unwind label %231

917:                                              ; preds = %913
  %918 = load ptr, ptr %13, align 8, !tbaa !5
  %919 = load i32, ptr %24, align 4, !tbaa !15
  %920 = sext i32 %919 to i64
  %921 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %918, i64 noundef %920)
          to label %922 unwind label %231

922:                                              ; preds = %917
  %923 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %921)
          to label %924 unwind label %231

924:                                              ; preds = %922
  %925 = invoke noundef zeroext i1 @_ZN7glslang5IsNanEd(double noundef %923)
          to label %926 unwind label %231

926:                                              ; preds = %924
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %916, i1 noundef zeroext %925)
          to label %927 unwind label %231

927:                                              ; preds = %926
  br label %2700

928:                                              ; preds = %218
  %929 = load i32, ptr %24, align 4, !tbaa !15
  %930 = sext i32 %929 to i64
  %931 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %930)
          to label %932 unwind label %231

932:                                              ; preds = %928
  %933 = load ptr, ptr %13, align 8, !tbaa !5
  %934 = load i32, ptr %24, align 4, !tbaa !15
  %935 = sext i32 %934 to i64
  %936 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %933, i64 noundef %935)
          to label %937 unwind label %231

937:                                              ; preds = %932
  %938 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %936)
          to label %939 unwind label %231

939:                                              ; preds = %937
  %940 = invoke noundef zeroext i1 @_ZN7glslang10IsInfinityEd(double noundef %938)
          to label %941 unwind label %231

941:                                              ; preds = %939
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %931, i1 noundef zeroext %940)
          to label %942 unwind label %231

942:                                              ; preds = %941
  br label %2700

943:                                              ; preds = %218
  %944 = load i32, ptr %24, align 4, !tbaa !15
  %945 = sext i32 %944 to i64
  %946 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %945)
          to label %947 unwind label %231

947:                                              ; preds = %943
  %948 = load ptr, ptr %13, align 8, !tbaa !5
  %949 = load i32, ptr %24, align 4, !tbaa !15
  %950 = sext i32 %949 to i64
  %951 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %948, i64 noundef %950)
          to label %952 unwind label %231

952:                                              ; preds = %947
  %953 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %951)
          to label %954 unwind label %231

954:                                              ; preds = %952
  %955 = icmp ne i32 %953, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %946, i1 noundef zeroext %955)
          to label %956 unwind label %231

956:                                              ; preds = %954
  br label %2700

957:                                              ; preds = %218
  %958 = load i32, ptr %24, align 4, !tbaa !15
  %959 = sext i32 %958 to i64
  %960 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %959)
          to label %961 unwind label %231

961:                                              ; preds = %957
  %962 = load ptr, ptr %13, align 8, !tbaa !5
  %963 = load i32, ptr %24, align 4, !tbaa !15
  %964 = sext i32 %963 to i64
  %965 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %962, i64 noundef %964)
          to label %966 unwind label %231

966:                                              ; preds = %961
  %967 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %965)
          to label %968 unwind label %231

968:                                              ; preds = %966
  %969 = icmp ne i32 %967, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %960, i1 noundef zeroext %969)
          to label %970 unwind label %231

970:                                              ; preds = %968
  br label %2700

971:                                              ; preds = %218
  %972 = load i32, ptr %24, align 4, !tbaa !15
  %973 = sext i32 %972 to i64
  %974 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %973)
          to label %975 unwind label %231

975:                                              ; preds = %971
  %976 = load ptr, ptr %13, align 8, !tbaa !5
  %977 = load i32, ptr %24, align 4, !tbaa !15
  %978 = sext i32 %977 to i64
  %979 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %976, i64 noundef %978)
          to label %980 unwind label %231

980:                                              ; preds = %975
  %981 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %979)
          to label %982 unwind label %231

982:                                              ; preds = %980
  %983 = zext i1 %981 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %974, i32 noundef %983)
          to label %984 unwind label %231

984:                                              ; preds = %982
  br label %2700

985:                                              ; preds = %218
  %986 = load i32, ptr %24, align 4, !tbaa !15
  %987 = sext i32 %986 to i64
  %988 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %987)
          to label %989 unwind label %231

989:                                              ; preds = %985
  %990 = load ptr, ptr %13, align 8, !tbaa !5
  %991 = load i32, ptr %24, align 4, !tbaa !15
  %992 = sext i32 %991 to i64
  %993 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %990, i64 noundef %992)
          to label %994 unwind label %231

994:                                              ; preds = %989
  %995 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %993)
          to label %996 unwind label %231

996:                                              ; preds = %994
  %997 = zext i1 %995 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %988, i32 noundef %997)
          to label %998 unwind label %231

998:                                              ; preds = %996
  br label %2700

999:                                              ; preds = %218
  %1000 = load i32, ptr %24, align 4, !tbaa !15
  %1001 = sext i32 %1000 to i64
  %1002 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1001)
          to label %1003 unwind label %231

1003:                                             ; preds = %999
  %1004 = load ptr, ptr %13, align 8, !tbaa !5
  %1005 = load i32, ptr %24, align 4, !tbaa !15
  %1006 = sext i32 %1005 to i64
  %1007 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1004, i64 noundef %1006)
          to label %1008 unwind label %231

1008:                                             ; preds = %1003
  %1009 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1007)
          to label %1010 unwind label %231

1010:                                             ; preds = %1008
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1002, i32 noundef %1009)
          to label %1011 unwind label %231

1011:                                             ; preds = %1010
  br label %2700

1012:                                             ; preds = %218
  %1013 = load i32, ptr %24, align 4, !tbaa !15
  %1014 = sext i32 %1013 to i64
  %1015 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1014)
          to label %1016 unwind label %231

1016:                                             ; preds = %1012
  %1017 = load ptr, ptr %13, align 8, !tbaa !5
  %1018 = load i32, ptr %24, align 4, !tbaa !15
  %1019 = sext i32 %1018 to i64
  %1020 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1017, i64 noundef %1019)
          to label %1021 unwind label %231

1021:                                             ; preds = %1016
  %1022 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1020)
          to label %1023 unwind label %231

1023:                                             ; preds = %1021
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1015, i32 noundef %1022)
          to label %1024 unwind label %231

1024:                                             ; preds = %1023
  br label %2700

1025:                                             ; preds = %218, %218
  %1026 = load i32, ptr %24, align 4, !tbaa !15
  %1027 = sext i32 %1026 to i64
  %1028 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1027)
          to label %1029 unwind label %231

1029:                                             ; preds = %1025
  %1030 = load ptr, ptr %13, align 8, !tbaa !5
  %1031 = load i32, ptr %24, align 4, !tbaa !15
  %1032 = sext i32 %1031 to i64
  %1033 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1030, i64 noundef %1032)
          to label %1034 unwind label %231

1034:                                             ; preds = %1029
  %1035 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1033)
          to label %1036 unwind label %231

1036:                                             ; preds = %1034
  %1037 = fcmp une double %1035, 0.000000e+00
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1028, i1 noundef zeroext %1037)
          to label %1038 unwind label %231

1038:                                             ; preds = %1036
  br label %2700

1039:                                             ; preds = %218, %218
  %1040 = load i32, ptr %24, align 4, !tbaa !15
  %1041 = sext i32 %1040 to i64
  %1042 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1041)
          to label %1043 unwind label %231

1043:                                             ; preds = %1039
  %1044 = load ptr, ptr %13, align 8, !tbaa !5
  %1045 = load i32, ptr %24, align 4, !tbaa !15
  %1046 = sext i32 %1045 to i64
  %1047 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1044, i64 noundef %1046)
          to label %1048 unwind label %231

1048:                                             ; preds = %1043
  %1049 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1047)
          to label %1050 unwind label %231

1050:                                             ; preds = %1048
  %1051 = uitofp i1 %1049 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1042, double noundef %1051)
          to label %1052 unwind label %231

1052:                                             ; preds = %1050
  br label %2700

1053:                                             ; preds = %218, %218
  %1054 = load i32, ptr %24, align 4, !tbaa !15
  %1055 = sext i32 %1054 to i64
  %1056 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1055)
          to label %1057 unwind label %231

1057:                                             ; preds = %1053
  %1058 = load ptr, ptr %13, align 8, !tbaa !5
  %1059 = load i32, ptr %24, align 4, !tbaa !15
  %1060 = sext i32 %1059 to i64
  %1061 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1058, i64 noundef %1060)
          to label %1062 unwind label %231

1062:                                             ; preds = %1057
  %1063 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1061)
          to label %1064 unwind label %231

1064:                                             ; preds = %1062
  %1065 = sitofp i32 %1063 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1056, double noundef %1065)
          to label %1066 unwind label %231

1066:                                             ; preds = %1064
  br label %2700

1067:                                             ; preds = %218, %218
  %1068 = load i32, ptr %24, align 4, !tbaa !15
  %1069 = sext i32 %1068 to i64
  %1070 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1069)
          to label %1071 unwind label %231

1071:                                             ; preds = %1067
  %1072 = load ptr, ptr %13, align 8, !tbaa !5
  %1073 = load i32, ptr %24, align 4, !tbaa !15
  %1074 = sext i32 %1073 to i64
  %1075 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1072, i64 noundef %1074)
          to label %1076 unwind label %231

1076:                                             ; preds = %1071
  %1077 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1075)
          to label %1078 unwind label %231

1078:                                             ; preds = %1076
  %1079 = uitofp i32 %1077 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1070, double noundef %1079)
          to label %1080 unwind label %231

1080:                                             ; preds = %1078
  br label %2700

1081:                                             ; preds = %218, %218
  %1082 = load i32, ptr %24, align 4, !tbaa !15
  %1083 = sext i32 %1082 to i64
  %1084 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1083)
          to label %1085 unwind label %231

1085:                                             ; preds = %1081
  %1086 = load ptr, ptr %13, align 8, !tbaa !5
  %1087 = load i32, ptr %24, align 4, !tbaa !15
  %1088 = sext i32 %1087 to i64
  %1089 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1086, i64 noundef %1088)
          to label %1090 unwind label %231

1090:                                             ; preds = %1085
  %1091 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1089)
          to label %1092 unwind label %231

1092:                                             ; preds = %1090
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1084, double noundef %1091)
          to label %1093 unwind label %231

1093:                                             ; preds = %1092
  br label %2700

1094:                                             ; preds = %218, %218
  %1095 = load i32, ptr %24, align 4, !tbaa !15
  %1096 = sext i32 %1095 to i64
  %1097 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1096)
          to label %1098 unwind label %231

1098:                                             ; preds = %1094
  %1099 = load ptr, ptr %13, align 8, !tbaa !5
  %1100 = load i32, ptr %24, align 4, !tbaa !15
  %1101 = sext i32 %1100 to i64
  %1102 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1099, i64 noundef %1101)
          to label %1103 unwind label %231

1103:                                             ; preds = %1098
  %1104 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1102)
          to label %1105 unwind label %231

1105:                                             ; preds = %1103
  %1106 = fptoui double %1104 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1097, i32 noundef %1106)
          to label %1107 unwind label %231

1107:                                             ; preds = %1105
  br label %2700

1108:                                             ; preds = %218, %218
  %1109 = load i32, ptr %24, align 4, !tbaa !15
  %1110 = sext i32 %1109 to i64
  %1111 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1110)
          to label %1112 unwind label %231

1112:                                             ; preds = %1108
  %1113 = load ptr, ptr %13, align 8, !tbaa !5
  %1114 = load i32, ptr %24, align 4, !tbaa !15
  %1115 = sext i32 %1114 to i64
  %1116 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1113, i64 noundef %1115)
          to label %1117 unwind label %231

1117:                                             ; preds = %1112
  %1118 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1116)
          to label %1119 unwind label %231

1119:                                             ; preds = %1117
  %1120 = fptosi double %1118 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1111, i32 noundef %1120)
          to label %1121 unwind label %231

1121:                                             ; preds = %1119
  br label %2700

1122:                                             ; preds = %218
  %1123 = load i32, ptr %24, align 4, !tbaa !15
  %1124 = sext i32 %1123 to i64
  %1125 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1124)
          to label %1126 unwind label %231

1126:                                             ; preds = %1122
  %1127 = load ptr, ptr %13, align 8, !tbaa !5
  %1128 = load i32, ptr %24, align 4, !tbaa !15
  %1129 = sext i32 %1128 to i64
  %1130 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1127, i64 noundef %1129)
          to label %1131 unwind label %231

1131:                                             ; preds = %1126
  %1132 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1130)
          to label %1133 unwind label %231

1133:                                             ; preds = %1131
  %1134 = sext i8 %1132 to i32
  %1135 = icmp ne i32 %1134, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1125, i1 noundef zeroext %1135)
          to label %1136 unwind label %231

1136:                                             ; preds = %1133
  br label %2700

1137:                                             ; preds = %218
  %1138 = load i32, ptr %24, align 4, !tbaa !15
  %1139 = sext i32 %1138 to i64
  %1140 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1139)
          to label %1141 unwind label %231

1141:                                             ; preds = %1137
  %1142 = load ptr, ptr %13, align 8, !tbaa !5
  %1143 = load i32, ptr %24, align 4, !tbaa !15
  %1144 = sext i32 %1143 to i64
  %1145 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1142, i64 noundef %1144)
          to label %1146 unwind label %231

1146:                                             ; preds = %1141
  %1147 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1145)
          to label %1148 unwind label %231

1148:                                             ; preds = %1146
  %1149 = zext i8 %1147 to i32
  %1150 = icmp ne i32 %1149, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1140, i1 noundef zeroext %1150)
          to label %1151 unwind label %231

1151:                                             ; preds = %1148
  br label %2700

1152:                                             ; preds = %218
  %1153 = load i32, ptr %24, align 4, !tbaa !15
  %1154 = sext i32 %1153 to i64
  %1155 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1154)
          to label %1156 unwind label %231

1156:                                             ; preds = %1152
  %1157 = load ptr, ptr %13, align 8, !tbaa !5
  %1158 = load i32, ptr %24, align 4, !tbaa !15
  %1159 = sext i32 %1158 to i64
  %1160 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1157, i64 noundef %1159)
          to label %1161 unwind label %231

1161:                                             ; preds = %1156
  %1162 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1160)
          to label %1163 unwind label %231

1163:                                             ; preds = %1161
  %1164 = sext i16 %1162 to i32
  %1165 = icmp ne i32 %1164, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1155, i1 noundef zeroext %1165)
          to label %1166 unwind label %231

1166:                                             ; preds = %1163
  br label %2700

1167:                                             ; preds = %218
  %1168 = load i32, ptr %24, align 4, !tbaa !15
  %1169 = sext i32 %1168 to i64
  %1170 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1169)
          to label %1171 unwind label %231

1171:                                             ; preds = %1167
  %1172 = load ptr, ptr %13, align 8, !tbaa !5
  %1173 = load i32, ptr %24, align 4, !tbaa !15
  %1174 = sext i32 %1173 to i64
  %1175 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1172, i64 noundef %1174)
          to label %1176 unwind label %231

1176:                                             ; preds = %1171
  %1177 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1175)
          to label %1178 unwind label %231

1178:                                             ; preds = %1176
  %1179 = zext i16 %1177 to i32
  %1180 = icmp ne i32 %1179, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1170, i1 noundef zeroext %1180)
          to label %1181 unwind label %231

1181:                                             ; preds = %1178
  br label %2700

1182:                                             ; preds = %218
  %1183 = load i32, ptr %24, align 4, !tbaa !15
  %1184 = sext i32 %1183 to i64
  %1185 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1184)
          to label %1186 unwind label %231

1186:                                             ; preds = %1182
  %1187 = load ptr, ptr %13, align 8, !tbaa !5
  %1188 = load i32, ptr %24, align 4, !tbaa !15
  %1189 = sext i32 %1188 to i64
  %1190 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1187, i64 noundef %1189)
          to label %1191 unwind label %231

1191:                                             ; preds = %1186
  %1192 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1190)
          to label %1193 unwind label %231

1193:                                             ; preds = %1191
  %1194 = icmp ne i64 %1192, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1185, i1 noundef zeroext %1194)
          to label %1195 unwind label %231

1195:                                             ; preds = %1193
  br label %2700

1196:                                             ; preds = %218
  %1197 = load i32, ptr %24, align 4, !tbaa !15
  %1198 = sext i32 %1197 to i64
  %1199 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1198)
          to label %1200 unwind label %231

1200:                                             ; preds = %1196
  %1201 = load ptr, ptr %13, align 8, !tbaa !5
  %1202 = load i32, ptr %24, align 4, !tbaa !15
  %1203 = sext i32 %1202 to i64
  %1204 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1201, i64 noundef %1203)
          to label %1205 unwind label %231

1205:                                             ; preds = %1200
  %1206 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1204)
          to label %1207 unwind label %231

1207:                                             ; preds = %1205
  %1208 = icmp ne i64 %1206, 0
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1199, i1 noundef zeroext %1208)
          to label %1209 unwind label %231

1209:                                             ; preds = %1207
  br label %2700

1210:                                             ; preds = %218
  %1211 = load i32, ptr %24, align 4, !tbaa !15
  %1212 = sext i32 %1211 to i64
  %1213 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1212)
          to label %1214 unwind label %231

1214:                                             ; preds = %1210
  %1215 = load ptr, ptr %13, align 8, !tbaa !5
  %1216 = load i32, ptr %24, align 4, !tbaa !15
  %1217 = sext i32 %1216 to i64
  %1218 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1215, i64 noundef %1217)
          to label %1219 unwind label %231

1219:                                             ; preds = %1214
  %1220 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1218)
          to label %1221 unwind label %231

1221:                                             ; preds = %1219
  %1222 = fcmp une double %1220, 0.000000e+00
  invoke void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %1213, i1 noundef zeroext %1222)
          to label %1223 unwind label %231

1223:                                             ; preds = %1221
  br label %2700

1224:                                             ; preds = %218
  %1225 = load i32, ptr %24, align 4, !tbaa !15
  %1226 = sext i32 %1225 to i64
  %1227 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1226)
          to label %1228 unwind label %231

1228:                                             ; preds = %1224
  %1229 = load ptr, ptr %13, align 8, !tbaa !5
  %1230 = load i32, ptr %24, align 4, !tbaa !15
  %1231 = sext i32 %1230 to i64
  %1232 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1229, i64 noundef %1231)
          to label %1233 unwind label %231

1233:                                             ; preds = %1228
  %1234 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1232)
          to label %1235 unwind label %231

1235:                                             ; preds = %1233
  %1236 = zext i1 %1234 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1227, i8 noundef signext %1236)
          to label %1237 unwind label %231

1237:                                             ; preds = %1235
  br label %2700

1238:                                             ; preds = %218
  %1239 = load i32, ptr %24, align 4, !tbaa !15
  %1240 = sext i32 %1239 to i64
  %1241 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1240)
          to label %1242 unwind label %231

1242:                                             ; preds = %1238
  %1243 = load ptr, ptr %13, align 8, !tbaa !5
  %1244 = load i32, ptr %24, align 4, !tbaa !15
  %1245 = sext i32 %1244 to i64
  %1246 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1243, i64 noundef %1245)
          to label %1247 unwind label %231

1247:                                             ; preds = %1242
  %1248 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1246)
          to label %1249 unwind label %231

1249:                                             ; preds = %1247
  %1250 = zext i1 %1248 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %1241, i8 noundef zeroext %1250)
          to label %1251 unwind label %231

1251:                                             ; preds = %1249
  br label %2700

1252:                                             ; preds = %218
  %1253 = load i32, ptr %24, align 4, !tbaa !15
  %1254 = sext i32 %1253 to i64
  %1255 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1254)
          to label %1256 unwind label %231

1256:                                             ; preds = %1252
  %1257 = load ptr, ptr %13, align 8, !tbaa !5
  %1258 = load i32, ptr %24, align 4, !tbaa !15
  %1259 = sext i32 %1258 to i64
  %1260 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1257, i64 noundef %1259)
          to label %1261 unwind label %231

1261:                                             ; preds = %1256
  %1262 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1260)
          to label %1263 unwind label %231

1263:                                             ; preds = %1261
  %1264 = zext i1 %1262 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1255, i16 noundef signext %1264)
          to label %1265 unwind label %231

1265:                                             ; preds = %1263
  br label %2700

1266:                                             ; preds = %218
  %1267 = load i32, ptr %24, align 4, !tbaa !15
  %1268 = sext i32 %1267 to i64
  %1269 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1268)
          to label %1270 unwind label %231

1270:                                             ; preds = %1266
  %1271 = load ptr, ptr %13, align 8, !tbaa !5
  %1272 = load i32, ptr %24, align 4, !tbaa !15
  %1273 = sext i32 %1272 to i64
  %1274 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1271, i64 noundef %1273)
          to label %1275 unwind label %231

1275:                                             ; preds = %1270
  %1276 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1274)
          to label %1277 unwind label %231

1277:                                             ; preds = %1275
  %1278 = zext i1 %1276 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %1269, i16 noundef zeroext %1278)
          to label %1279 unwind label %231

1279:                                             ; preds = %1277
  br label %2700

1280:                                             ; preds = %218
  %1281 = load i32, ptr %24, align 4, !tbaa !15
  %1282 = sext i32 %1281 to i64
  %1283 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1282)
          to label %1284 unwind label %231

1284:                                             ; preds = %1280
  %1285 = load ptr, ptr %13, align 8, !tbaa !5
  %1286 = load i32, ptr %24, align 4, !tbaa !15
  %1287 = sext i32 %1286 to i64
  %1288 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1285, i64 noundef %1287)
          to label %1289 unwind label %231

1289:                                             ; preds = %1284
  %1290 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1288)
          to label %1291 unwind label %231

1291:                                             ; preds = %1289
  %1292 = zext i1 %1290 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1283, i64 noundef %1292)
          to label %1293 unwind label %231

1293:                                             ; preds = %1291
  br label %2700

1294:                                             ; preds = %218
  %1295 = load i32, ptr %24, align 4, !tbaa !15
  %1296 = sext i32 %1295 to i64
  %1297 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1296)
          to label %1298 unwind label %231

1298:                                             ; preds = %1294
  %1299 = load ptr, ptr %13, align 8, !tbaa !5
  %1300 = load i32, ptr %24, align 4, !tbaa !15
  %1301 = sext i32 %1300 to i64
  %1302 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1299, i64 noundef %1301)
          to label %1303 unwind label %231

1303:                                             ; preds = %1298
  %1304 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1302)
          to label %1305 unwind label %231

1305:                                             ; preds = %1303
  %1306 = zext i1 %1304 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1297, i64 noundef %1306)
          to label %1307 unwind label %231

1307:                                             ; preds = %1305
  br label %2700

1308:                                             ; preds = %218
  %1309 = load i32, ptr %24, align 4, !tbaa !15
  %1310 = sext i32 %1309 to i64
  %1311 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1310)
          to label %1312 unwind label %231

1312:                                             ; preds = %1308
  %1313 = load ptr, ptr %13, align 8, !tbaa !5
  %1314 = load i32, ptr %24, align 4, !tbaa !15
  %1315 = sext i32 %1314 to i64
  %1316 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1313, i64 noundef %1315)
          to label %1317 unwind label %231

1317:                                             ; preds = %1312
  %1318 = invoke noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1316)
          to label %1319 unwind label %231

1319:                                             ; preds = %1317
  %1320 = uitofp i1 %1318 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1311, double noundef %1320)
          to label %1321 unwind label %231

1321:                                             ; preds = %1319
  br label %2700

1322:                                             ; preds = %218
  %1323 = load i32, ptr %24, align 4, !tbaa !15
  %1324 = sext i32 %1323 to i64
  %1325 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1324)
          to label %1326 unwind label %231

1326:                                             ; preds = %1322
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = load i32, ptr %24, align 4, !tbaa !15
  %1329 = sext i32 %1328 to i64
  %1330 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1327, i64 noundef %1329)
          to label %1331 unwind label %231

1331:                                             ; preds = %1326
  %1332 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1330)
          to label %1333 unwind label %231

1333:                                             ; preds = %1331
  %1334 = sext i8 %1332 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1325, i16 noundef signext %1334)
          to label %1335 unwind label %231

1335:                                             ; preds = %1333
  br label %2700

1336:                                             ; preds = %218
  %1337 = load i32, ptr %24, align 4, !tbaa !15
  %1338 = sext i32 %1337 to i64
  %1339 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1338)
          to label %1340 unwind label %231

1340:                                             ; preds = %1336
  %1341 = load ptr, ptr %13, align 8, !tbaa !5
  %1342 = load i32, ptr %24, align 4, !tbaa !15
  %1343 = sext i32 %1342 to i64
  %1344 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1341, i64 noundef %1343)
          to label %1345 unwind label %231

1345:                                             ; preds = %1340
  %1346 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1344)
          to label %1347 unwind label %231

1347:                                             ; preds = %1345
  %1348 = sext i8 %1346 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1339, i32 noundef %1348)
          to label %1349 unwind label %231

1349:                                             ; preds = %1347
  br label %2700

1350:                                             ; preds = %218
  %1351 = load i32, ptr %24, align 4, !tbaa !15
  %1352 = sext i32 %1351 to i64
  %1353 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1352)
          to label %1354 unwind label %231

1354:                                             ; preds = %1350
  %1355 = load ptr, ptr %13, align 8, !tbaa !5
  %1356 = load i32, ptr %24, align 4, !tbaa !15
  %1357 = sext i32 %1356 to i64
  %1358 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1355, i64 noundef %1357)
          to label %1359 unwind label %231

1359:                                             ; preds = %1354
  %1360 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1358)
          to label %1361 unwind label %231

1361:                                             ; preds = %1359
  %1362 = sext i8 %1360 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1353, i64 noundef %1362)
          to label %1363 unwind label %231

1363:                                             ; preds = %1361
  br label %2700

1364:                                             ; preds = %218
  %1365 = load i32, ptr %24, align 4, !tbaa !15
  %1366 = sext i32 %1365 to i64
  %1367 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1366)
          to label %1368 unwind label %231

1368:                                             ; preds = %1364
  %1369 = load ptr, ptr %13, align 8, !tbaa !5
  %1370 = load i32, ptr %24, align 4, !tbaa !15
  %1371 = sext i32 %1370 to i64
  %1372 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1369, i64 noundef %1371)
          to label %1373 unwind label %231

1373:                                             ; preds = %1368
  %1374 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1372)
          to label %1375 unwind label %231

1375:                                             ; preds = %1373
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %1367, i8 noundef zeroext %1374)
          to label %1376 unwind label %231

1376:                                             ; preds = %1375
  br label %2700

1377:                                             ; preds = %218
  %1378 = load i32, ptr %24, align 4, !tbaa !15
  %1379 = sext i32 %1378 to i64
  %1380 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1379)
          to label %1381 unwind label %231

1381:                                             ; preds = %1377
  %1382 = load ptr, ptr %13, align 8, !tbaa !5
  %1383 = load i32, ptr %24, align 4, !tbaa !15
  %1384 = sext i32 %1383 to i64
  %1385 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1382, i64 noundef %1384)
          to label %1386 unwind label %231

1386:                                             ; preds = %1381
  %1387 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1385)
          to label %1388 unwind label %231

1388:                                             ; preds = %1386
  %1389 = sext i8 %1387 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %1380, i16 noundef zeroext %1389)
          to label %1390 unwind label %231

1390:                                             ; preds = %1388
  br label %2700

1391:                                             ; preds = %218
  %1392 = load i32, ptr %24, align 4, !tbaa !15
  %1393 = sext i32 %1392 to i64
  %1394 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1393)
          to label %1395 unwind label %231

1395:                                             ; preds = %1391
  %1396 = load ptr, ptr %13, align 8, !tbaa !5
  %1397 = load i32, ptr %24, align 4, !tbaa !15
  %1398 = sext i32 %1397 to i64
  %1399 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1396, i64 noundef %1398)
          to label %1400 unwind label %231

1400:                                             ; preds = %1395
  %1401 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1399)
          to label %1402 unwind label %231

1402:                                             ; preds = %1400
  %1403 = sext i8 %1401 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1394, i32 noundef %1403)
          to label %1404 unwind label %231

1404:                                             ; preds = %1402
  br label %2700

1405:                                             ; preds = %218
  %1406 = load i32, ptr %24, align 4, !tbaa !15
  %1407 = sext i32 %1406 to i64
  %1408 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1407)
          to label %1409 unwind label %231

1409:                                             ; preds = %1405
  %1410 = load ptr, ptr %13, align 8, !tbaa !5
  %1411 = load i32, ptr %24, align 4, !tbaa !15
  %1412 = sext i32 %1411 to i64
  %1413 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1410, i64 noundef %1412)
          to label %1414 unwind label %231

1414:                                             ; preds = %1409
  %1415 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1413)
          to label %1416 unwind label %231

1416:                                             ; preds = %1414
  %1417 = sext i8 %1415 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1408, i64 noundef %1417)
          to label %1418 unwind label %231

1418:                                             ; preds = %1416
  br label %2700

1419:                                             ; preds = %218
  %1420 = load i32, ptr %24, align 4, !tbaa !15
  %1421 = sext i32 %1420 to i64
  %1422 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1421)
          to label %1423 unwind label %231

1423:                                             ; preds = %1419
  %1424 = load ptr, ptr %13, align 8, !tbaa !5
  %1425 = load i32, ptr %24, align 4, !tbaa !15
  %1426 = sext i32 %1425 to i64
  %1427 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1424, i64 noundef %1426)
          to label %1428 unwind label %231

1428:                                             ; preds = %1423
  %1429 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1427)
          to label %1430 unwind label %231

1430:                                             ; preds = %1428
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1422, i8 noundef signext %1429)
          to label %1431 unwind label %231

1431:                                             ; preds = %1430
  br label %2700

1432:                                             ; preds = %218
  %1433 = load i32, ptr %24, align 4, !tbaa !15
  %1434 = sext i32 %1433 to i64
  %1435 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1434)
          to label %1436 unwind label %231

1436:                                             ; preds = %1432
  %1437 = load ptr, ptr %13, align 8, !tbaa !5
  %1438 = load i32, ptr %24, align 4, !tbaa !15
  %1439 = sext i32 %1438 to i64
  %1440 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1437, i64 noundef %1439)
          to label %1441 unwind label %231

1441:                                             ; preds = %1436
  %1442 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1440)
          to label %1443 unwind label %231

1443:                                             ; preds = %1441
  %1444 = zext i8 %1442 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1435, i16 noundef signext %1444)
          to label %1445 unwind label %231

1445:                                             ; preds = %1443
  br label %2700

1446:                                             ; preds = %218
  %1447 = load i32, ptr %24, align 4, !tbaa !15
  %1448 = sext i32 %1447 to i64
  %1449 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1448)
          to label %1450 unwind label %231

1450:                                             ; preds = %1446
  %1451 = load ptr, ptr %13, align 8, !tbaa !5
  %1452 = load i32, ptr %24, align 4, !tbaa !15
  %1453 = sext i32 %1452 to i64
  %1454 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1451, i64 noundef %1453)
          to label %1455 unwind label %231

1455:                                             ; preds = %1450
  %1456 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1454)
          to label %1457 unwind label %231

1457:                                             ; preds = %1455
  %1458 = zext i8 %1456 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1449, i32 noundef %1458)
          to label %1459 unwind label %231

1459:                                             ; preds = %1457
  br label %2700

1460:                                             ; preds = %218
  %1461 = load i32, ptr %24, align 4, !tbaa !15
  %1462 = sext i32 %1461 to i64
  %1463 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1462)
          to label %1464 unwind label %231

1464:                                             ; preds = %1460
  %1465 = load ptr, ptr %13, align 8, !tbaa !5
  %1466 = load i32, ptr %24, align 4, !tbaa !15
  %1467 = sext i32 %1466 to i64
  %1468 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1465, i64 noundef %1467)
          to label %1469 unwind label %231

1469:                                             ; preds = %1464
  %1470 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1468)
          to label %1471 unwind label %231

1471:                                             ; preds = %1469
  %1472 = zext i8 %1470 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1463, i64 noundef %1472)
          to label %1473 unwind label %231

1473:                                             ; preds = %1471
  br label %2700

1474:                                             ; preds = %218
  %1475 = load i32, ptr %24, align 4, !tbaa !15
  %1476 = sext i32 %1475 to i64
  %1477 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1476)
          to label %1478 unwind label %231

1478:                                             ; preds = %1474
  %1479 = load ptr, ptr %13, align 8, !tbaa !5
  %1480 = load i32, ptr %24, align 4, !tbaa !15
  %1481 = sext i32 %1480 to i64
  %1482 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1479, i64 noundef %1481)
          to label %1483 unwind label %231

1483:                                             ; preds = %1478
  %1484 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1482)
          to label %1485 unwind label %231

1485:                                             ; preds = %1483
  %1486 = zext i8 %1484 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %1477, i16 noundef zeroext %1486)
          to label %1487 unwind label %231

1487:                                             ; preds = %1485
  br label %2700

1488:                                             ; preds = %218
  %1489 = load i32, ptr %24, align 4, !tbaa !15
  %1490 = sext i32 %1489 to i64
  %1491 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1490)
          to label %1492 unwind label %231

1492:                                             ; preds = %1488
  %1493 = load ptr, ptr %13, align 8, !tbaa !5
  %1494 = load i32, ptr %24, align 4, !tbaa !15
  %1495 = sext i32 %1494 to i64
  %1496 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1493, i64 noundef %1495)
          to label %1497 unwind label %231

1497:                                             ; preds = %1492
  %1498 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1496)
          to label %1499 unwind label %231

1499:                                             ; preds = %1497
  %1500 = zext i8 %1498 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1491, i32 noundef %1500)
          to label %1501 unwind label %231

1501:                                             ; preds = %1499
  br label %2700

1502:                                             ; preds = %218
  %1503 = load i32, ptr %24, align 4, !tbaa !15
  %1504 = sext i32 %1503 to i64
  %1505 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1504)
          to label %1506 unwind label %231

1506:                                             ; preds = %1502
  %1507 = load ptr, ptr %13, align 8, !tbaa !5
  %1508 = load i32, ptr %24, align 4, !tbaa !15
  %1509 = sext i32 %1508 to i64
  %1510 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1507, i64 noundef %1509)
          to label %1511 unwind label %231

1511:                                             ; preds = %1506
  %1512 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1510)
          to label %1513 unwind label %231

1513:                                             ; preds = %1511
  %1514 = zext i8 %1512 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1505, i64 noundef %1514)
          to label %1515 unwind label %231

1515:                                             ; preds = %1513
  br label %2700

1516:                                             ; preds = %218
  %1517 = load i32, ptr %24, align 4, !tbaa !15
  %1518 = sext i32 %1517 to i64
  %1519 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1518)
          to label %1520 unwind label %231

1520:                                             ; preds = %1516
  %1521 = load ptr, ptr %13, align 8, !tbaa !5
  %1522 = load i32, ptr %24, align 4, !tbaa !15
  %1523 = sext i32 %1522 to i64
  %1524 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1521, i64 noundef %1523)
          to label %1525 unwind label %231

1525:                                             ; preds = %1520
  %1526 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1524)
          to label %1527 unwind label %231

1527:                                             ; preds = %1525
  %1528 = sitofp i8 %1526 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1519, double noundef %1528)
          to label %1529 unwind label %231

1529:                                             ; preds = %1527
  br label %2700

1530:                                             ; preds = %218
  %1531 = load i32, ptr %24, align 4, !tbaa !15
  %1532 = sext i32 %1531 to i64
  %1533 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1532)
          to label %1534 unwind label %231

1534:                                             ; preds = %1530
  %1535 = load ptr, ptr %13, align 8, !tbaa !5
  %1536 = load i32, ptr %24, align 4, !tbaa !15
  %1537 = sext i32 %1536 to i64
  %1538 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1535, i64 noundef %1537)
          to label %1539 unwind label %231

1539:                                             ; preds = %1534
  %1540 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1538)
          to label %1541 unwind label %231

1541:                                             ; preds = %1539
  %1542 = sitofp i8 %1540 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1533, double noundef %1542)
          to label %1543 unwind label %231

1543:                                             ; preds = %1541
  br label %2700

1544:                                             ; preds = %218
  %1545 = load i32, ptr %24, align 4, !tbaa !15
  %1546 = sext i32 %1545 to i64
  %1547 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1546)
          to label %1548 unwind label %231

1548:                                             ; preds = %1544
  %1549 = load ptr, ptr %13, align 8, !tbaa !5
  %1550 = load i32, ptr %24, align 4, !tbaa !15
  %1551 = sext i32 %1550 to i64
  %1552 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1549, i64 noundef %1551)
          to label %1553 unwind label %231

1553:                                             ; preds = %1548
  %1554 = invoke noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1552)
          to label %1555 unwind label %231

1555:                                             ; preds = %1553
  %1556 = sitofp i8 %1554 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1547, double noundef %1556)
          to label %1557 unwind label %231

1557:                                             ; preds = %1555
  br label %2700

1558:                                             ; preds = %218
  %1559 = load i32, ptr %24, align 4, !tbaa !15
  %1560 = sext i32 %1559 to i64
  %1561 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1560)
          to label %1562 unwind label %231

1562:                                             ; preds = %1558
  %1563 = load ptr, ptr %13, align 8, !tbaa !5
  %1564 = load i32, ptr %24, align 4, !tbaa !15
  %1565 = sext i32 %1564 to i64
  %1566 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1563, i64 noundef %1565)
          to label %1567 unwind label %231

1567:                                             ; preds = %1562
  %1568 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1566)
          to label %1569 unwind label %231

1569:                                             ; preds = %1567
  %1570 = uitofp i8 %1568 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1561, double noundef %1570)
          to label %1571 unwind label %231

1571:                                             ; preds = %1569
  br label %2700

1572:                                             ; preds = %218
  %1573 = load i32, ptr %24, align 4, !tbaa !15
  %1574 = sext i32 %1573 to i64
  %1575 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1574)
          to label %1576 unwind label %231

1576:                                             ; preds = %1572
  %1577 = load ptr, ptr %13, align 8, !tbaa !5
  %1578 = load i32, ptr %24, align 4, !tbaa !15
  %1579 = sext i32 %1578 to i64
  %1580 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1577, i64 noundef %1579)
          to label %1581 unwind label %231

1581:                                             ; preds = %1576
  %1582 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1580)
          to label %1583 unwind label %231

1583:                                             ; preds = %1581
  %1584 = uitofp i8 %1582 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1575, double noundef %1584)
          to label %1585 unwind label %231

1585:                                             ; preds = %1583
  br label %2700

1586:                                             ; preds = %218
  %1587 = load i32, ptr %24, align 4, !tbaa !15
  %1588 = sext i32 %1587 to i64
  %1589 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1588)
          to label %1590 unwind label %231

1590:                                             ; preds = %1586
  %1591 = load ptr, ptr %13, align 8, !tbaa !5
  %1592 = load i32, ptr %24, align 4, !tbaa !15
  %1593 = sext i32 %1592 to i64
  %1594 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1591, i64 noundef %1593)
          to label %1595 unwind label %231

1595:                                             ; preds = %1590
  %1596 = invoke noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1594)
          to label %1597 unwind label %231

1597:                                             ; preds = %1595
  %1598 = uitofp i8 %1596 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1589, double noundef %1598)
          to label %1599 unwind label %231

1599:                                             ; preds = %1597
  br label %2700

1600:                                             ; preds = %218
  %1601 = load i32, ptr %24, align 4, !tbaa !15
  %1602 = sext i32 %1601 to i64
  %1603 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1602)
          to label %1604 unwind label %231

1604:                                             ; preds = %1600
  %1605 = load ptr, ptr %13, align 8, !tbaa !5
  %1606 = load i32, ptr %24, align 4, !tbaa !15
  %1607 = sext i32 %1606 to i64
  %1608 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1605, i64 noundef %1607)
          to label %1609 unwind label %231

1609:                                             ; preds = %1604
  %1610 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1608)
          to label %1611 unwind label %231

1611:                                             ; preds = %1609
  %1612 = trunc i16 %1610 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1603, i8 noundef signext %1612)
          to label %1613 unwind label %231

1613:                                             ; preds = %1611
  br label %2700

1614:                                             ; preds = %218
  %1615 = load i32, ptr %24, align 4, !tbaa !15
  %1616 = sext i32 %1615 to i64
  %1617 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1616)
          to label %1618 unwind label %231

1618:                                             ; preds = %1614
  %1619 = load ptr, ptr %13, align 8, !tbaa !5
  %1620 = load i32, ptr %24, align 4, !tbaa !15
  %1621 = sext i32 %1620 to i64
  %1622 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1619, i64 noundef %1621)
          to label %1623 unwind label %231

1623:                                             ; preds = %1618
  %1624 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1622)
          to label %1625 unwind label %231

1625:                                             ; preds = %1623
  %1626 = sext i16 %1624 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1617, i32 noundef %1626)
          to label %1627 unwind label %231

1627:                                             ; preds = %1625
  br label %2700

1628:                                             ; preds = %218
  %1629 = load i32, ptr %24, align 4, !tbaa !15
  %1630 = sext i32 %1629 to i64
  %1631 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1630)
          to label %1632 unwind label %231

1632:                                             ; preds = %1628
  %1633 = load ptr, ptr %13, align 8, !tbaa !5
  %1634 = load i32, ptr %24, align 4, !tbaa !15
  %1635 = sext i32 %1634 to i64
  %1636 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1633, i64 noundef %1635)
          to label %1637 unwind label %231

1637:                                             ; preds = %1632
  %1638 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1636)
          to label %1639 unwind label %231

1639:                                             ; preds = %1637
  %1640 = sext i16 %1638 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1631, i64 noundef %1640)
          to label %1641 unwind label %231

1641:                                             ; preds = %1639
  br label %2700

1642:                                             ; preds = %218
  %1643 = load i32, ptr %24, align 4, !tbaa !15
  %1644 = sext i32 %1643 to i64
  %1645 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1644)
          to label %1646 unwind label %231

1646:                                             ; preds = %1642
  %1647 = load ptr, ptr %13, align 8, !tbaa !5
  %1648 = load i32, ptr %24, align 4, !tbaa !15
  %1649 = sext i32 %1648 to i64
  %1650 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1647, i64 noundef %1649)
          to label %1651 unwind label %231

1651:                                             ; preds = %1646
  %1652 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1650)
          to label %1653 unwind label %231

1653:                                             ; preds = %1651
  %1654 = trunc i16 %1652 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %1645, i8 noundef zeroext %1654)
          to label %1655 unwind label %231

1655:                                             ; preds = %1653
  br label %2700

1656:                                             ; preds = %218
  %1657 = load i32, ptr %24, align 4, !tbaa !15
  %1658 = sext i32 %1657 to i64
  %1659 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1658)
          to label %1660 unwind label %231

1660:                                             ; preds = %1656
  %1661 = load ptr, ptr %13, align 8, !tbaa !5
  %1662 = load i32, ptr %24, align 4, !tbaa !15
  %1663 = sext i32 %1662 to i64
  %1664 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1661, i64 noundef %1663)
          to label %1665 unwind label %231

1665:                                             ; preds = %1660
  %1666 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1664)
          to label %1667 unwind label %231

1667:                                             ; preds = %1665
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %1659, i16 noundef zeroext %1666)
          to label %1668 unwind label %231

1668:                                             ; preds = %1667
  br label %2700

1669:                                             ; preds = %218
  %1670 = load i32, ptr %24, align 4, !tbaa !15
  %1671 = sext i32 %1670 to i64
  %1672 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1671)
          to label %1673 unwind label %231

1673:                                             ; preds = %1669
  %1674 = load ptr, ptr %13, align 8, !tbaa !5
  %1675 = load i32, ptr %24, align 4, !tbaa !15
  %1676 = sext i32 %1675 to i64
  %1677 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1674, i64 noundef %1676)
          to label %1678 unwind label %231

1678:                                             ; preds = %1673
  %1679 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1677)
          to label %1680 unwind label %231

1680:                                             ; preds = %1678
  %1681 = sext i16 %1679 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1672, i32 noundef %1681)
          to label %1682 unwind label %231

1682:                                             ; preds = %1680
  br label %2700

1683:                                             ; preds = %218
  %1684 = load i32, ptr %24, align 4, !tbaa !15
  %1685 = sext i32 %1684 to i64
  %1686 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1685)
          to label %1687 unwind label %231

1687:                                             ; preds = %1683
  %1688 = load ptr, ptr %13, align 8, !tbaa !5
  %1689 = load i32, ptr %24, align 4, !tbaa !15
  %1690 = sext i32 %1689 to i64
  %1691 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1688, i64 noundef %1690)
          to label %1692 unwind label %231

1692:                                             ; preds = %1687
  %1693 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1691)
          to label %1694 unwind label %231

1694:                                             ; preds = %1692
  %1695 = sext i16 %1693 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1686, i64 noundef %1695)
          to label %1696 unwind label %231

1696:                                             ; preds = %1694
  br label %2700

1697:                                             ; preds = %218
  %1698 = load i32, ptr %24, align 4, !tbaa !15
  %1699 = sext i32 %1698 to i64
  %1700 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1699)
          to label %1701 unwind label %231

1701:                                             ; preds = %1697
  %1702 = load ptr, ptr %13, align 8, !tbaa !5
  %1703 = load i32, ptr %24, align 4, !tbaa !15
  %1704 = sext i32 %1703 to i64
  %1705 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1702, i64 noundef %1704)
          to label %1706 unwind label %231

1706:                                             ; preds = %1701
  %1707 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1705)
          to label %1708 unwind label %231

1708:                                             ; preds = %1706
  %1709 = trunc i16 %1707 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1700, i8 noundef signext %1709)
          to label %1710 unwind label %231

1710:                                             ; preds = %1708
  br label %2700

1711:                                             ; preds = %218
  %1712 = load i32, ptr %24, align 4, !tbaa !15
  %1713 = sext i32 %1712 to i64
  %1714 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1713)
          to label %1715 unwind label %231

1715:                                             ; preds = %1711
  %1716 = load ptr, ptr %13, align 8, !tbaa !5
  %1717 = load i32, ptr %24, align 4, !tbaa !15
  %1718 = sext i32 %1717 to i64
  %1719 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1716, i64 noundef %1718)
          to label %1720 unwind label %231

1720:                                             ; preds = %1715
  %1721 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1719)
          to label %1722 unwind label %231

1722:                                             ; preds = %1720
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1714, i16 noundef signext %1721)
          to label %1723 unwind label %231

1723:                                             ; preds = %1722
  br label %2700

1724:                                             ; preds = %218
  %1725 = load i32, ptr %24, align 4, !tbaa !15
  %1726 = sext i32 %1725 to i64
  %1727 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1726)
          to label %1728 unwind label %231

1728:                                             ; preds = %1724
  %1729 = load ptr, ptr %13, align 8, !tbaa !5
  %1730 = load i32, ptr %24, align 4, !tbaa !15
  %1731 = sext i32 %1730 to i64
  %1732 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1729, i64 noundef %1731)
          to label %1733 unwind label %231

1733:                                             ; preds = %1728
  %1734 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1732)
          to label %1735 unwind label %231

1735:                                             ; preds = %1733
  %1736 = zext i16 %1734 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %1727, i32 noundef %1736)
          to label %1737 unwind label %231

1737:                                             ; preds = %1735
  br label %2700

1738:                                             ; preds = %218
  %1739 = load i32, ptr %24, align 4, !tbaa !15
  %1740 = sext i32 %1739 to i64
  %1741 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1740)
          to label %1742 unwind label %231

1742:                                             ; preds = %1738
  %1743 = load ptr, ptr %13, align 8, !tbaa !5
  %1744 = load i32, ptr %24, align 4, !tbaa !15
  %1745 = sext i32 %1744 to i64
  %1746 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1743, i64 noundef %1745)
          to label %1747 unwind label %231

1747:                                             ; preds = %1742
  %1748 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1746)
          to label %1749 unwind label %231

1749:                                             ; preds = %1747
  %1750 = zext i16 %1748 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1741, i64 noundef %1750)
          to label %1751 unwind label %231

1751:                                             ; preds = %1749
  br label %2700

1752:                                             ; preds = %218
  %1753 = load i32, ptr %24, align 4, !tbaa !15
  %1754 = sext i32 %1753 to i64
  %1755 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1754)
          to label %1756 unwind label %231

1756:                                             ; preds = %1752
  %1757 = load ptr, ptr %13, align 8, !tbaa !5
  %1758 = load i32, ptr %24, align 4, !tbaa !15
  %1759 = sext i32 %1758 to i64
  %1760 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1757, i64 noundef %1759)
          to label %1761 unwind label %231

1761:                                             ; preds = %1756
  %1762 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1760)
          to label %1763 unwind label %231

1763:                                             ; preds = %1761
  %1764 = trunc i16 %1762 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %1755, i8 noundef zeroext %1764)
          to label %1765 unwind label %231

1765:                                             ; preds = %1763
  br label %2700

1766:                                             ; preds = %218
  %1767 = load i32, ptr %24, align 4, !tbaa !15
  %1768 = sext i32 %1767 to i64
  %1769 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1768)
          to label %1770 unwind label %231

1770:                                             ; preds = %1766
  %1771 = load ptr, ptr %13, align 8, !tbaa !5
  %1772 = load i32, ptr %24, align 4, !tbaa !15
  %1773 = sext i32 %1772 to i64
  %1774 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1771, i64 noundef %1773)
          to label %1775 unwind label %231

1775:                                             ; preds = %1770
  %1776 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1774)
          to label %1777 unwind label %231

1777:                                             ; preds = %1775
  %1778 = zext i16 %1776 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %1769, i32 noundef %1778)
          to label %1779 unwind label %231

1779:                                             ; preds = %1777
  br label %2700

1780:                                             ; preds = %218
  %1781 = load i32, ptr %24, align 4, !tbaa !15
  %1782 = sext i32 %1781 to i64
  %1783 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1782)
          to label %1784 unwind label %231

1784:                                             ; preds = %1780
  %1785 = load ptr, ptr %13, align 8, !tbaa !5
  %1786 = load i32, ptr %24, align 4, !tbaa !15
  %1787 = sext i32 %1786 to i64
  %1788 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1785, i64 noundef %1787)
          to label %1789 unwind label %231

1789:                                             ; preds = %1784
  %1790 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1788)
          to label %1791 unwind label %231

1791:                                             ; preds = %1789
  %1792 = zext i16 %1790 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1783, i64 noundef %1792)
          to label %1793 unwind label %231

1793:                                             ; preds = %1791
  br label %2700

1794:                                             ; preds = %218
  %1795 = load i32, ptr %24, align 4, !tbaa !15
  %1796 = sext i32 %1795 to i64
  %1797 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1796)
          to label %1798 unwind label %231

1798:                                             ; preds = %1794
  %1799 = load ptr, ptr %13, align 8, !tbaa !5
  %1800 = load i32, ptr %24, align 4, !tbaa !15
  %1801 = sext i32 %1800 to i64
  %1802 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1799, i64 noundef %1801)
          to label %1803 unwind label %231

1803:                                             ; preds = %1798
  %1804 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1802)
          to label %1805 unwind label %231

1805:                                             ; preds = %1803
  %1806 = sitofp i16 %1804 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1797, double noundef %1806)
          to label %1807 unwind label %231

1807:                                             ; preds = %1805
  br label %2700

1808:                                             ; preds = %218
  %1809 = load i32, ptr %24, align 4, !tbaa !15
  %1810 = sext i32 %1809 to i64
  %1811 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1810)
          to label %1812 unwind label %231

1812:                                             ; preds = %1808
  %1813 = load ptr, ptr %13, align 8, !tbaa !5
  %1814 = load i32, ptr %24, align 4, !tbaa !15
  %1815 = sext i32 %1814 to i64
  %1816 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1813, i64 noundef %1815)
          to label %1817 unwind label %231

1817:                                             ; preds = %1812
  %1818 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1816)
          to label %1819 unwind label %231

1819:                                             ; preds = %1817
  %1820 = sitofp i16 %1818 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1811, double noundef %1820)
          to label %1821 unwind label %231

1821:                                             ; preds = %1819
  br label %2700

1822:                                             ; preds = %218
  %1823 = load i32, ptr %24, align 4, !tbaa !15
  %1824 = sext i32 %1823 to i64
  %1825 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1824)
          to label %1826 unwind label %231

1826:                                             ; preds = %1822
  %1827 = load ptr, ptr %13, align 8, !tbaa !5
  %1828 = load i32, ptr %24, align 4, !tbaa !15
  %1829 = sext i32 %1828 to i64
  %1830 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1827, i64 noundef %1829)
          to label %1831 unwind label %231

1831:                                             ; preds = %1826
  %1832 = invoke noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1830)
          to label %1833 unwind label %231

1833:                                             ; preds = %1831
  %1834 = sitofp i16 %1832 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1825, double noundef %1834)
          to label %1835 unwind label %231

1835:                                             ; preds = %1833
  br label %2700

1836:                                             ; preds = %218
  %1837 = load i32, ptr %24, align 4, !tbaa !15
  %1838 = sext i32 %1837 to i64
  %1839 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1838)
          to label %1840 unwind label %231

1840:                                             ; preds = %1836
  %1841 = load ptr, ptr %13, align 8, !tbaa !5
  %1842 = load i32, ptr %24, align 4, !tbaa !15
  %1843 = sext i32 %1842 to i64
  %1844 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1841, i64 noundef %1843)
          to label %1845 unwind label %231

1845:                                             ; preds = %1840
  %1846 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1844)
          to label %1847 unwind label %231

1847:                                             ; preds = %1845
  %1848 = uitofp i16 %1846 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1839, double noundef %1848)
          to label %1849 unwind label %231

1849:                                             ; preds = %1847
  br label %2700

1850:                                             ; preds = %218
  %1851 = load i32, ptr %24, align 4, !tbaa !15
  %1852 = sext i32 %1851 to i64
  %1853 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1852)
          to label %1854 unwind label %231

1854:                                             ; preds = %1850
  %1855 = load ptr, ptr %13, align 8, !tbaa !5
  %1856 = load i32, ptr %24, align 4, !tbaa !15
  %1857 = sext i32 %1856 to i64
  %1858 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1855, i64 noundef %1857)
          to label %1859 unwind label %231

1859:                                             ; preds = %1854
  %1860 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1858)
          to label %1861 unwind label %231

1861:                                             ; preds = %1859
  %1862 = uitofp i16 %1860 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1853, double noundef %1862)
          to label %1863 unwind label %231

1863:                                             ; preds = %1861
  br label %2700

1864:                                             ; preds = %218
  %1865 = load i32, ptr %24, align 4, !tbaa !15
  %1866 = sext i32 %1865 to i64
  %1867 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1866)
          to label %1868 unwind label %231

1868:                                             ; preds = %1864
  %1869 = load ptr, ptr %13, align 8, !tbaa !5
  %1870 = load i32, ptr %24, align 4, !tbaa !15
  %1871 = sext i32 %1870 to i64
  %1872 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1869, i64 noundef %1871)
          to label %1873 unwind label %231

1873:                                             ; preds = %1868
  %1874 = invoke noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1872)
          to label %1875 unwind label %231

1875:                                             ; preds = %1873
  %1876 = uitofp i16 %1874 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %1867, double noundef %1876)
          to label %1877 unwind label %231

1877:                                             ; preds = %1875
  br label %2700

1878:                                             ; preds = %218
  %1879 = load i32, ptr %24, align 4, !tbaa !15
  %1880 = sext i32 %1879 to i64
  %1881 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1880)
          to label %1882 unwind label %231

1882:                                             ; preds = %1878
  %1883 = load ptr, ptr %13, align 8, !tbaa !5
  %1884 = load i32, ptr %24, align 4, !tbaa !15
  %1885 = sext i32 %1884 to i64
  %1886 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1883, i64 noundef %1885)
          to label %1887 unwind label %231

1887:                                             ; preds = %1882
  %1888 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1886)
          to label %1889 unwind label %231

1889:                                             ; preds = %1887
  %1890 = trunc i32 %1888 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1881, i8 noundef signext %1890)
          to label %1891 unwind label %231

1891:                                             ; preds = %1889
  br label %2700

1892:                                             ; preds = %218
  %1893 = load i32, ptr %24, align 4, !tbaa !15
  %1894 = sext i32 %1893 to i64
  %1895 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1894)
          to label %1896 unwind label %231

1896:                                             ; preds = %1892
  %1897 = load ptr, ptr %13, align 8, !tbaa !5
  %1898 = load i32, ptr %24, align 4, !tbaa !15
  %1899 = sext i32 %1898 to i64
  %1900 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1897, i64 noundef %1899)
          to label %1901 unwind label %231

1901:                                             ; preds = %1896
  %1902 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1900)
          to label %1903 unwind label %231

1903:                                             ; preds = %1901
  %1904 = trunc i32 %1902 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1895, i16 noundef signext %1904)
          to label %1905 unwind label %231

1905:                                             ; preds = %1903
  br label %2700

1906:                                             ; preds = %218
  %1907 = load i32, ptr %24, align 4, !tbaa !15
  %1908 = sext i32 %1907 to i64
  %1909 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1908)
          to label %1910 unwind label %231

1910:                                             ; preds = %1906
  %1911 = load ptr, ptr %13, align 8, !tbaa !5
  %1912 = load i32, ptr %24, align 4, !tbaa !15
  %1913 = sext i32 %1912 to i64
  %1914 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1911, i64 noundef %1913)
          to label %1915 unwind label %231

1915:                                             ; preds = %1910
  %1916 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1914)
          to label %1917 unwind label %231

1917:                                             ; preds = %1915
  %1918 = sext i32 %1916 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1909, i64 noundef %1918)
          to label %1919 unwind label %231

1919:                                             ; preds = %1917
  br label %2700

1920:                                             ; preds = %218
  %1921 = load i32, ptr %24, align 4, !tbaa !15
  %1922 = sext i32 %1921 to i64
  %1923 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1922)
          to label %1924 unwind label %231

1924:                                             ; preds = %1920
  %1925 = load ptr, ptr %13, align 8, !tbaa !5
  %1926 = load i32, ptr %24, align 4, !tbaa !15
  %1927 = sext i32 %1926 to i64
  %1928 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1925, i64 noundef %1927)
          to label %1929 unwind label %231

1929:                                             ; preds = %1924
  %1930 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1928)
          to label %1931 unwind label %231

1931:                                             ; preds = %1929
  %1932 = trunc i32 %1930 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %1923, i8 noundef zeroext %1932)
          to label %1933 unwind label %231

1933:                                             ; preds = %1931
  br label %2700

1934:                                             ; preds = %218
  %1935 = load i32, ptr %24, align 4, !tbaa !15
  %1936 = sext i32 %1935 to i64
  %1937 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1936)
          to label %1938 unwind label %231

1938:                                             ; preds = %1934
  %1939 = load ptr, ptr %13, align 8, !tbaa !5
  %1940 = load i32, ptr %24, align 4, !tbaa !15
  %1941 = sext i32 %1940 to i64
  %1942 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1939, i64 noundef %1941)
          to label %1943 unwind label %231

1943:                                             ; preds = %1938
  %1944 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1942)
          to label %1945 unwind label %231

1945:                                             ; preds = %1943
  %1946 = trunc i32 %1944 to i8
  %1947 = zext i8 %1946 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %1937, i16 noundef zeroext %1947)
          to label %1948 unwind label %231

1948:                                             ; preds = %1945
  br label %2700

1949:                                             ; preds = %218
  %1950 = load i32, ptr %24, align 4, !tbaa !15
  %1951 = sext i32 %1950 to i64
  %1952 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1951)
          to label %1953 unwind label %231

1953:                                             ; preds = %1949
  %1954 = load ptr, ptr %13, align 8, !tbaa !5
  %1955 = load i32, ptr %24, align 4, !tbaa !15
  %1956 = sext i32 %1955 to i64
  %1957 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1954, i64 noundef %1956)
          to label %1958 unwind label %231

1958:                                             ; preds = %1953
  %1959 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1957)
          to label %1960 unwind label %231

1960:                                             ; preds = %1958
  %1961 = sext i32 %1959 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %1952, i64 noundef %1961)
          to label %1962 unwind label %231

1962:                                             ; preds = %1960
  br label %2700

1963:                                             ; preds = %218
  %1964 = load i32, ptr %24, align 4, !tbaa !15
  %1965 = sext i32 %1964 to i64
  %1966 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1965)
          to label %1967 unwind label %231

1967:                                             ; preds = %1963
  %1968 = load ptr, ptr %13, align 8, !tbaa !5
  %1969 = load i32, ptr %24, align 4, !tbaa !15
  %1970 = sext i32 %1969 to i64
  %1971 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1968, i64 noundef %1970)
          to label %1972 unwind label %231

1972:                                             ; preds = %1967
  %1973 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1971)
          to label %1974 unwind label %231

1974:                                             ; preds = %1972
  %1975 = trunc i32 %1973 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %1966, i8 noundef signext %1975)
          to label %1976 unwind label %231

1976:                                             ; preds = %1974
  br label %2700

1977:                                             ; preds = %218
  %1978 = load i32, ptr %24, align 4, !tbaa !15
  %1979 = sext i32 %1978 to i64
  %1980 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1979)
          to label %1981 unwind label %231

1981:                                             ; preds = %1977
  %1982 = load ptr, ptr %13, align 8, !tbaa !5
  %1983 = load i32, ptr %24, align 4, !tbaa !15
  %1984 = sext i32 %1983 to i64
  %1985 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1982, i64 noundef %1984)
          to label %1986 unwind label %231

1986:                                             ; preds = %1981
  %1987 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1985)
          to label %1988 unwind label %231

1988:                                             ; preds = %1986
  %1989 = trunc i32 %1987 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %1980, i16 noundef signext %1989)
          to label %1990 unwind label %231

1990:                                             ; preds = %1988
  br label %2700

1991:                                             ; preds = %218
  %1992 = load i32, ptr %24, align 4, !tbaa !15
  %1993 = sext i32 %1992 to i64
  %1994 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %1993)
          to label %1995 unwind label %231

1995:                                             ; preds = %1991
  %1996 = load ptr, ptr %13, align 8, !tbaa !5
  %1997 = load i32, ptr %24, align 4, !tbaa !15
  %1998 = sext i32 %1997 to i64
  %1999 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %1996, i64 noundef %1998)
          to label %2000 unwind label %231

2000:                                             ; preds = %1995
  %2001 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %1999)
          to label %2002 unwind label %231

2002:                                             ; preds = %2000
  %2003 = zext i32 %2001 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %1994, i64 noundef %2003)
          to label %2004 unwind label %231

2004:                                             ; preds = %2002
  br label %2700

2005:                                             ; preds = %218
  %2006 = load i32, ptr %24, align 4, !tbaa !15
  %2007 = sext i32 %2006 to i64
  %2008 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2007)
          to label %2009 unwind label %231

2009:                                             ; preds = %2005
  %2010 = load ptr, ptr %13, align 8, !tbaa !5
  %2011 = load i32, ptr %24, align 4, !tbaa !15
  %2012 = sext i32 %2011 to i64
  %2013 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2010, i64 noundef %2012)
          to label %2014 unwind label %231

2014:                                             ; preds = %2009
  %2015 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2013)
          to label %2016 unwind label %231

2016:                                             ; preds = %2014
  %2017 = trunc i32 %2015 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2008, i8 noundef zeroext %2017)
          to label %2018 unwind label %231

2018:                                             ; preds = %2016
  br label %2700

2019:                                             ; preds = %218
  %2020 = load i32, ptr %24, align 4, !tbaa !15
  %2021 = sext i32 %2020 to i64
  %2022 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2021)
          to label %2023 unwind label %231

2023:                                             ; preds = %2019
  %2024 = load ptr, ptr %13, align 8, !tbaa !5
  %2025 = load i32, ptr %24, align 4, !tbaa !15
  %2026 = sext i32 %2025 to i64
  %2027 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2024, i64 noundef %2026)
          to label %2028 unwind label %231

2028:                                             ; preds = %2023
  %2029 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2027)
          to label %2030 unwind label %231

2030:                                             ; preds = %2028
  %2031 = trunc i32 %2029 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2022, i16 noundef zeroext %2031)
          to label %2032 unwind label %231

2032:                                             ; preds = %2030
  br label %2700

2033:                                             ; preds = %218
  %2034 = load i32, ptr %24, align 4, !tbaa !15
  %2035 = sext i32 %2034 to i64
  %2036 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2035)
          to label %2037 unwind label %231

2037:                                             ; preds = %2033
  %2038 = load ptr, ptr %13, align 8, !tbaa !5
  %2039 = load i32, ptr %24, align 4, !tbaa !15
  %2040 = sext i32 %2039 to i64
  %2041 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2038, i64 noundef %2040)
          to label %2042 unwind label %231

2042:                                             ; preds = %2037
  %2043 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2041)
          to label %2044 unwind label %231

2044:                                             ; preds = %2042
  %2045 = zext i32 %2043 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2036, i64 noundef %2045)
          to label %2046 unwind label %231

2046:                                             ; preds = %2044
  br label %2700

2047:                                             ; preds = %218
  %2048 = load i32, ptr %24, align 4, !tbaa !15
  %2049 = sext i32 %2048 to i64
  %2050 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2049)
          to label %2051 unwind label %231

2051:                                             ; preds = %2047
  %2052 = load ptr, ptr %13, align 8, !tbaa !5
  %2053 = load i32, ptr %24, align 4, !tbaa !15
  %2054 = sext i32 %2053 to i64
  %2055 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2052, i64 noundef %2054)
          to label %2056 unwind label %231

2056:                                             ; preds = %2051
  %2057 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2055)
          to label %2058 unwind label %231

2058:                                             ; preds = %2056
  %2059 = sitofp i32 %2057 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2050, double noundef %2059)
          to label %2060 unwind label %231

2060:                                             ; preds = %2058
  br label %2700

2061:                                             ; preds = %218
  %2062 = load i32, ptr %24, align 4, !tbaa !15
  %2063 = sext i32 %2062 to i64
  %2064 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2063)
          to label %2065 unwind label %231

2065:                                             ; preds = %2061
  %2066 = load ptr, ptr %13, align 8, !tbaa !5
  %2067 = load i32, ptr %24, align 4, !tbaa !15
  %2068 = sext i32 %2067 to i64
  %2069 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2066, i64 noundef %2068)
          to label %2070 unwind label %231

2070:                                             ; preds = %2065
  %2071 = invoke noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2069)
          to label %2072 unwind label %231

2072:                                             ; preds = %2070
  %2073 = uitofp i32 %2071 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2064, double noundef %2073)
          to label %2074 unwind label %231

2074:                                             ; preds = %2072
  br label %2700

2075:                                             ; preds = %218
  %2076 = load i32, ptr %24, align 4, !tbaa !15
  %2077 = sext i32 %2076 to i64
  %2078 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2077)
          to label %2079 unwind label %231

2079:                                             ; preds = %2075
  %2080 = load ptr, ptr %13, align 8, !tbaa !5
  %2081 = load i32, ptr %24, align 4, !tbaa !15
  %2082 = sext i32 %2081 to i64
  %2083 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2080, i64 noundef %2082)
          to label %2084 unwind label %231

2084:                                             ; preds = %2079
  %2085 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2083)
          to label %2086 unwind label %231

2086:                                             ; preds = %2084
  %2087 = trunc i64 %2085 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %2078, i8 noundef signext %2087)
          to label %2088 unwind label %231

2088:                                             ; preds = %2086
  br label %2700

2089:                                             ; preds = %218
  %2090 = load i32, ptr %24, align 4, !tbaa !15
  %2091 = sext i32 %2090 to i64
  %2092 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2091)
          to label %2093 unwind label %231

2093:                                             ; preds = %2089
  %2094 = load ptr, ptr %13, align 8, !tbaa !5
  %2095 = load i32, ptr %24, align 4, !tbaa !15
  %2096 = sext i32 %2095 to i64
  %2097 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2094, i64 noundef %2096)
          to label %2098 unwind label %231

2098:                                             ; preds = %2093
  %2099 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2097)
          to label %2100 unwind label %231

2100:                                             ; preds = %2098
  %2101 = trunc i64 %2099 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %2092, i16 noundef signext %2101)
          to label %2102 unwind label %231

2102:                                             ; preds = %2100
  br label %2700

2103:                                             ; preds = %218
  %2104 = load i32, ptr %24, align 4, !tbaa !15
  %2105 = sext i32 %2104 to i64
  %2106 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2105)
          to label %2107 unwind label %231

2107:                                             ; preds = %2103
  %2108 = load ptr, ptr %13, align 8, !tbaa !5
  %2109 = load i32, ptr %24, align 4, !tbaa !15
  %2110 = sext i32 %2109 to i64
  %2111 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2108, i64 noundef %2110)
          to label %2112 unwind label %231

2112:                                             ; preds = %2107
  %2113 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2111)
          to label %2114 unwind label %231

2114:                                             ; preds = %2112
  %2115 = trunc i64 %2113 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %2106, i32 noundef %2115)
          to label %2116 unwind label %231

2116:                                             ; preds = %2114
  br label %2700

2117:                                             ; preds = %218
  %2118 = load i32, ptr %24, align 4, !tbaa !15
  %2119 = sext i32 %2118 to i64
  %2120 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2119)
          to label %2121 unwind label %231

2121:                                             ; preds = %2117
  %2122 = load ptr, ptr %13, align 8, !tbaa !5
  %2123 = load i32, ptr %24, align 4, !tbaa !15
  %2124 = sext i32 %2123 to i64
  %2125 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2122, i64 noundef %2124)
          to label %2126 unwind label %231

2126:                                             ; preds = %2121
  %2127 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2125)
          to label %2128 unwind label %231

2128:                                             ; preds = %2126
  %2129 = trunc i64 %2127 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2120, i8 noundef zeroext %2129)
          to label %2130 unwind label %231

2130:                                             ; preds = %2128
  br label %2700

2131:                                             ; preds = %218
  %2132 = load i32, ptr %24, align 4, !tbaa !15
  %2133 = sext i32 %2132 to i64
  %2134 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2133)
          to label %2135 unwind label %231

2135:                                             ; preds = %2131
  %2136 = load ptr, ptr %13, align 8, !tbaa !5
  %2137 = load i32, ptr %24, align 4, !tbaa !15
  %2138 = sext i32 %2137 to i64
  %2139 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2136, i64 noundef %2138)
          to label %2140 unwind label %231

2140:                                             ; preds = %2135
  %2141 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2139)
          to label %2142 unwind label %231

2142:                                             ; preds = %2140
  %2143 = trunc i64 %2141 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2134, i16 noundef zeroext %2143)
          to label %2144 unwind label %231

2144:                                             ; preds = %2142
  br label %2700

2145:                                             ; preds = %218
  %2146 = load i32, ptr %24, align 4, !tbaa !15
  %2147 = sext i32 %2146 to i64
  %2148 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2147)
          to label %2149 unwind label %231

2149:                                             ; preds = %2145
  %2150 = load ptr, ptr %13, align 8, !tbaa !5
  %2151 = load i32, ptr %24, align 4, !tbaa !15
  %2152 = sext i32 %2151 to i64
  %2153 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2150, i64 noundef %2152)
          to label %2154 unwind label %231

2154:                                             ; preds = %2149
  %2155 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2153)
          to label %2156 unwind label %231

2156:                                             ; preds = %2154
  %2157 = trunc i64 %2155 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %2148, i32 noundef %2157)
          to label %2158 unwind label %231

2158:                                             ; preds = %2156
  br label %2700

2159:                                             ; preds = %218
  %2160 = load i32, ptr %24, align 4, !tbaa !15
  %2161 = sext i32 %2160 to i64
  %2162 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2161)
          to label %2163 unwind label %231

2163:                                             ; preds = %2159
  %2164 = load ptr, ptr %13, align 8, !tbaa !5
  %2165 = load i32, ptr %24, align 4, !tbaa !15
  %2166 = sext i32 %2165 to i64
  %2167 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2164, i64 noundef %2166)
          to label %2168 unwind label %231

2168:                                             ; preds = %2163
  %2169 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2167)
          to label %2170 unwind label %231

2170:                                             ; preds = %2168
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2162, i64 noundef %2169)
          to label %2171 unwind label %231

2171:                                             ; preds = %2170
  br label %2700

2172:                                             ; preds = %218
  %2173 = load i32, ptr %24, align 4, !tbaa !15
  %2174 = sext i32 %2173 to i64
  %2175 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2174)
          to label %2176 unwind label %231

2176:                                             ; preds = %2172
  %2177 = load ptr, ptr %13, align 8, !tbaa !5
  %2178 = load i32, ptr %24, align 4, !tbaa !15
  %2179 = sext i32 %2178 to i64
  %2180 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2177, i64 noundef %2179)
          to label %2181 unwind label %231

2181:                                             ; preds = %2176
  %2182 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2180)
          to label %2183 unwind label %231

2183:                                             ; preds = %2181
  %2184 = trunc i64 %2182 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %2175, i8 noundef signext %2184)
          to label %2185 unwind label %231

2185:                                             ; preds = %2183
  br label %2700

2186:                                             ; preds = %218
  %2187 = load i32, ptr %24, align 4, !tbaa !15
  %2188 = sext i32 %2187 to i64
  %2189 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2188)
          to label %2190 unwind label %231

2190:                                             ; preds = %2186
  %2191 = load ptr, ptr %13, align 8, !tbaa !5
  %2192 = load i32, ptr %24, align 4, !tbaa !15
  %2193 = sext i32 %2192 to i64
  %2194 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2191, i64 noundef %2193)
          to label %2195 unwind label %231

2195:                                             ; preds = %2190
  %2196 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2194)
          to label %2197 unwind label %231

2197:                                             ; preds = %2195
  %2198 = trunc i64 %2196 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %2189, i16 noundef signext %2198)
          to label %2199 unwind label %231

2199:                                             ; preds = %2197
  br label %2700

2200:                                             ; preds = %218
  %2201 = load i32, ptr %24, align 4, !tbaa !15
  %2202 = sext i32 %2201 to i64
  %2203 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2202)
          to label %2204 unwind label %231

2204:                                             ; preds = %2200
  %2205 = load ptr, ptr %13, align 8, !tbaa !5
  %2206 = load i32, ptr %24, align 4, !tbaa !15
  %2207 = sext i32 %2206 to i64
  %2208 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2205, i64 noundef %2207)
          to label %2209 unwind label %231

2209:                                             ; preds = %2204
  %2210 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2208)
          to label %2211 unwind label %231

2211:                                             ; preds = %2209
  %2212 = trunc i64 %2210 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %2203, i32 noundef %2212)
          to label %2213 unwind label %231

2213:                                             ; preds = %2211
  br label %2700

2214:                                             ; preds = %218
  %2215 = load i32, ptr %24, align 4, !tbaa !15
  %2216 = sext i32 %2215 to i64
  %2217 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2216)
          to label %2218 unwind label %231

2218:                                             ; preds = %2214
  %2219 = load ptr, ptr %13, align 8, !tbaa !5
  %2220 = load i32, ptr %24, align 4, !tbaa !15
  %2221 = sext i32 %2220 to i64
  %2222 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2219, i64 noundef %2221)
          to label %2223 unwind label %231

2223:                                             ; preds = %2218
  %2224 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2222)
          to label %2225 unwind label %231

2225:                                             ; preds = %2223
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %2217, i64 noundef %2224)
          to label %2226 unwind label %231

2226:                                             ; preds = %2225
  br label %2700

2227:                                             ; preds = %218
  %2228 = load i32, ptr %24, align 4, !tbaa !15
  %2229 = sext i32 %2228 to i64
  %2230 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2229)
          to label %2231 unwind label %231

2231:                                             ; preds = %2227
  %2232 = load ptr, ptr %13, align 8, !tbaa !5
  %2233 = load i32, ptr %24, align 4, !tbaa !15
  %2234 = sext i32 %2233 to i64
  %2235 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2232, i64 noundef %2234)
          to label %2236 unwind label %231

2236:                                             ; preds = %2231
  %2237 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2235)
          to label %2238 unwind label %231

2238:                                             ; preds = %2236
  %2239 = trunc i64 %2237 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2230, i8 noundef zeroext %2239)
          to label %2240 unwind label %231

2240:                                             ; preds = %2238
  br label %2700

2241:                                             ; preds = %218
  %2242 = load i32, ptr %24, align 4, !tbaa !15
  %2243 = sext i32 %2242 to i64
  %2244 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2243)
          to label %2245 unwind label %231

2245:                                             ; preds = %2241
  %2246 = load ptr, ptr %13, align 8, !tbaa !5
  %2247 = load i32, ptr %24, align 4, !tbaa !15
  %2248 = sext i32 %2247 to i64
  %2249 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2246, i64 noundef %2248)
          to label %2250 unwind label %231

2250:                                             ; preds = %2245
  %2251 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2249)
          to label %2252 unwind label %231

2252:                                             ; preds = %2250
  %2253 = trunc i64 %2251 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2244, i16 noundef zeroext %2253)
          to label %2254 unwind label %231

2254:                                             ; preds = %2252
  br label %2700

2255:                                             ; preds = %218
  %2256 = load i32, ptr %24, align 4, !tbaa !15
  %2257 = sext i32 %2256 to i64
  %2258 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2257)
          to label %2259 unwind label %231

2259:                                             ; preds = %2255
  %2260 = load ptr, ptr %13, align 8, !tbaa !5
  %2261 = load i32, ptr %24, align 4, !tbaa !15
  %2262 = sext i32 %2261 to i64
  %2263 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2260, i64 noundef %2262)
          to label %2264 unwind label %231

2264:                                             ; preds = %2259
  %2265 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2263)
          to label %2266 unwind label %231

2266:                                             ; preds = %2264
  %2267 = trunc i64 %2265 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %2258, i32 noundef %2267)
          to label %2268 unwind label %231

2268:                                             ; preds = %2266
  br label %2700

2269:                                             ; preds = %218
  %2270 = load i32, ptr %24, align 4, !tbaa !15
  %2271 = sext i32 %2270 to i64
  %2272 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2271)
          to label %2273 unwind label %231

2273:                                             ; preds = %2269
  %2274 = load ptr, ptr %13, align 8, !tbaa !5
  %2275 = load i32, ptr %24, align 4, !tbaa !15
  %2276 = sext i32 %2275 to i64
  %2277 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2274, i64 noundef %2276)
          to label %2278 unwind label %231

2278:                                             ; preds = %2273
  %2279 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2277)
          to label %2280 unwind label %231

2280:                                             ; preds = %2278
  %2281 = sitofp i64 %2279 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2272, double noundef %2281)
          to label %2282 unwind label %231

2282:                                             ; preds = %2280
  br label %2700

2283:                                             ; preds = %218
  %2284 = load i32, ptr %24, align 4, !tbaa !15
  %2285 = sext i32 %2284 to i64
  %2286 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2285)
          to label %2287 unwind label %231

2287:                                             ; preds = %2283
  %2288 = load ptr, ptr %13, align 8, !tbaa !5
  %2289 = load i32, ptr %24, align 4, !tbaa !15
  %2290 = sext i32 %2289 to i64
  %2291 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2288, i64 noundef %2290)
          to label %2292 unwind label %231

2292:                                             ; preds = %2287
  %2293 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2291)
          to label %2294 unwind label %231

2294:                                             ; preds = %2292
  %2295 = sitofp i64 %2293 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2286, double noundef %2295)
          to label %2296 unwind label %231

2296:                                             ; preds = %2294
  br label %2700

2297:                                             ; preds = %218
  %2298 = load i32, ptr %24, align 4, !tbaa !15
  %2299 = sext i32 %2298 to i64
  %2300 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2299)
          to label %2301 unwind label %231

2301:                                             ; preds = %2297
  %2302 = load ptr, ptr %13, align 8, !tbaa !5
  %2303 = load i32, ptr %24, align 4, !tbaa !15
  %2304 = sext i32 %2303 to i64
  %2305 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2302, i64 noundef %2304)
          to label %2306 unwind label %231

2306:                                             ; preds = %2301
  %2307 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2305)
          to label %2308 unwind label %231

2308:                                             ; preds = %2306
  %2309 = sitofp i64 %2307 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2300, double noundef %2309)
          to label %2310 unwind label %231

2310:                                             ; preds = %2308
  br label %2700

2311:                                             ; preds = %218
  %2312 = load i32, ptr %24, align 4, !tbaa !15
  %2313 = sext i32 %2312 to i64
  %2314 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2313)
          to label %2315 unwind label %231

2315:                                             ; preds = %2311
  %2316 = load ptr, ptr %13, align 8, !tbaa !5
  %2317 = load i32, ptr %24, align 4, !tbaa !15
  %2318 = sext i32 %2317 to i64
  %2319 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2316, i64 noundef %2318)
          to label %2320 unwind label %231

2320:                                             ; preds = %2315
  %2321 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2319)
          to label %2322 unwind label %231

2322:                                             ; preds = %2320
  %2323 = uitofp i64 %2321 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2314, double noundef %2323)
          to label %2324 unwind label %231

2324:                                             ; preds = %2322
  br label %2700

2325:                                             ; preds = %218
  %2326 = load i32, ptr %24, align 4, !tbaa !15
  %2327 = sext i32 %2326 to i64
  %2328 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2327)
          to label %2329 unwind label %231

2329:                                             ; preds = %2325
  %2330 = load ptr, ptr %13, align 8, !tbaa !5
  %2331 = load i32, ptr %24, align 4, !tbaa !15
  %2332 = sext i32 %2331 to i64
  %2333 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2330, i64 noundef %2332)
          to label %2334 unwind label %231

2334:                                             ; preds = %2329
  %2335 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2333)
          to label %2336 unwind label %231

2336:                                             ; preds = %2334
  %2337 = uitofp i64 %2335 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2328, double noundef %2337)
          to label %2338 unwind label %231

2338:                                             ; preds = %2336
  br label %2700

2339:                                             ; preds = %218
  %2340 = load i32, ptr %24, align 4, !tbaa !15
  %2341 = sext i32 %2340 to i64
  %2342 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2341)
          to label %2343 unwind label %231

2343:                                             ; preds = %2339
  %2344 = load ptr, ptr %13, align 8, !tbaa !5
  %2345 = load i32, ptr %24, align 4, !tbaa !15
  %2346 = sext i32 %2345 to i64
  %2347 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2344, i64 noundef %2346)
          to label %2348 unwind label %231

2348:                                             ; preds = %2343
  %2349 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2347)
          to label %2350 unwind label %231

2350:                                             ; preds = %2348
  %2351 = uitofp i64 %2349 to double
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2342, double noundef %2351)
          to label %2352 unwind label %231

2352:                                             ; preds = %2350
  br label %2700

2353:                                             ; preds = %218
  %2354 = load i32, ptr %24, align 4, !tbaa !15
  %2355 = sext i32 %2354 to i64
  %2356 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2355)
          to label %2357 unwind label %231

2357:                                             ; preds = %2353
  %2358 = load ptr, ptr %13, align 8, !tbaa !5
  %2359 = load i32, ptr %24, align 4, !tbaa !15
  %2360 = sext i32 %2359 to i64
  %2361 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2358, i64 noundef %2360)
          to label %2362 unwind label %231

2362:                                             ; preds = %2357
  %2363 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2361)
          to label %2364 unwind label %231

2364:                                             ; preds = %2362
  %2365 = fptosi double %2363 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %2356, i8 noundef signext %2365)
          to label %2366 unwind label %231

2366:                                             ; preds = %2364
  br label %2700

2367:                                             ; preds = %218
  %2368 = load i32, ptr %24, align 4, !tbaa !15
  %2369 = sext i32 %2368 to i64
  %2370 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2369)
          to label %2371 unwind label %231

2371:                                             ; preds = %2367
  %2372 = load ptr, ptr %13, align 8, !tbaa !5
  %2373 = load i32, ptr %24, align 4, !tbaa !15
  %2374 = sext i32 %2373 to i64
  %2375 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2372, i64 noundef %2374)
          to label %2376 unwind label %231

2376:                                             ; preds = %2371
  %2377 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2375)
          to label %2378 unwind label %231

2378:                                             ; preds = %2376
  %2379 = fptosi double %2377 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %2370, i16 noundef signext %2379)
          to label %2380 unwind label %231

2380:                                             ; preds = %2378
  br label %2700

2381:                                             ; preds = %218
  %2382 = load i32, ptr %24, align 4, !tbaa !15
  %2383 = sext i32 %2382 to i64
  %2384 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2383)
          to label %2385 unwind label %231

2385:                                             ; preds = %2381
  %2386 = load ptr, ptr %13, align 8, !tbaa !5
  %2387 = load i32, ptr %24, align 4, !tbaa !15
  %2388 = sext i32 %2387 to i64
  %2389 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2386, i64 noundef %2388)
          to label %2390 unwind label %231

2390:                                             ; preds = %2385
  %2391 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2389)
          to label %2392 unwind label %231

2392:                                             ; preds = %2390
  %2393 = fptosi double %2391 to i32
  invoke void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %2384, i32 noundef %2393)
          to label %2394 unwind label %231

2394:                                             ; preds = %2392
  br label %2700

2395:                                             ; preds = %218
  %2396 = load i32, ptr %24, align 4, !tbaa !15
  %2397 = sext i32 %2396 to i64
  %2398 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2397)
          to label %2399 unwind label %231

2399:                                             ; preds = %2395
  %2400 = load ptr, ptr %13, align 8, !tbaa !5
  %2401 = load i32, ptr %24, align 4, !tbaa !15
  %2402 = sext i32 %2401 to i64
  %2403 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2400, i64 noundef %2402)
          to label %2404 unwind label %231

2404:                                             ; preds = %2399
  %2405 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2403)
          to label %2406 unwind label %231

2406:                                             ; preds = %2404
  %2407 = fptosi double %2405 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %2398, i64 noundef %2407)
          to label %2408 unwind label %231

2408:                                             ; preds = %2406
  br label %2700

2409:                                             ; preds = %218
  %2410 = load i32, ptr %24, align 4, !tbaa !15
  %2411 = sext i32 %2410 to i64
  %2412 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2411)
          to label %2413 unwind label %231

2413:                                             ; preds = %2409
  %2414 = load ptr, ptr %13, align 8, !tbaa !5
  %2415 = load i32, ptr %24, align 4, !tbaa !15
  %2416 = sext i32 %2415 to i64
  %2417 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2414, i64 noundef %2416)
          to label %2418 unwind label %231

2418:                                             ; preds = %2413
  %2419 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2417)
          to label %2420 unwind label %231

2420:                                             ; preds = %2418
  %2421 = fptoui double %2419 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2412, i8 noundef zeroext %2421)
          to label %2422 unwind label %231

2422:                                             ; preds = %2420
  br label %2700

2423:                                             ; preds = %218
  %2424 = load i32, ptr %24, align 4, !tbaa !15
  %2425 = sext i32 %2424 to i64
  %2426 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2425)
          to label %2427 unwind label %231

2427:                                             ; preds = %2423
  %2428 = load ptr, ptr %13, align 8, !tbaa !5
  %2429 = load i32, ptr %24, align 4, !tbaa !15
  %2430 = sext i32 %2429 to i64
  %2431 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2428, i64 noundef %2430)
          to label %2432 unwind label %231

2432:                                             ; preds = %2427
  %2433 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2431)
          to label %2434 unwind label %231

2434:                                             ; preds = %2432
  %2435 = fptoui double %2433 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2426, i16 noundef zeroext %2435)
          to label %2436 unwind label %231

2436:                                             ; preds = %2434
  br label %2700

2437:                                             ; preds = %218
  %2438 = load i32, ptr %24, align 4, !tbaa !15
  %2439 = sext i32 %2438 to i64
  %2440 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2439)
          to label %2441 unwind label %231

2441:                                             ; preds = %2437
  %2442 = load ptr, ptr %13, align 8, !tbaa !5
  %2443 = load i32, ptr %24, align 4, !tbaa !15
  %2444 = sext i32 %2443 to i64
  %2445 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2442, i64 noundef %2444)
          to label %2446 unwind label %231

2446:                                             ; preds = %2441
  %2447 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2445)
          to label %2448 unwind label %231

2448:                                             ; preds = %2446
  %2449 = fptoui double %2447 to i32
  invoke void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %2440, i32 noundef %2449)
          to label %2450 unwind label %231

2450:                                             ; preds = %2448
  br label %2700

2451:                                             ; preds = %218
  %2452 = load i32, ptr %24, align 4, !tbaa !15
  %2453 = sext i32 %2452 to i64
  %2454 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2453)
          to label %2455 unwind label %231

2455:                                             ; preds = %2451
  %2456 = load ptr, ptr %13, align 8, !tbaa !5
  %2457 = load i32, ptr %24, align 4, !tbaa !15
  %2458 = sext i32 %2457 to i64
  %2459 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2456, i64 noundef %2458)
          to label %2460 unwind label %231

2460:                                             ; preds = %2455
  %2461 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2459)
          to label %2462 unwind label %231

2462:                                             ; preds = %2460
  %2463 = fptoui double %2461 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2454, i64 noundef %2463)
          to label %2464 unwind label %231

2464:                                             ; preds = %2462
  br label %2700

2465:                                             ; preds = %218
  %2466 = load i32, ptr %24, align 4, !tbaa !15
  %2467 = sext i32 %2466 to i64
  %2468 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2467)
          to label %2469 unwind label %231

2469:                                             ; preds = %2465
  %2470 = load ptr, ptr %13, align 8, !tbaa !5
  %2471 = load i32, ptr %24, align 4, !tbaa !15
  %2472 = sext i32 %2471 to i64
  %2473 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2470, i64 noundef %2472)
          to label %2474 unwind label %231

2474:                                             ; preds = %2469
  %2475 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2473)
          to label %2476 unwind label %231

2476:                                             ; preds = %2474
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2468, double noundef %2475)
          to label %2477 unwind label %231

2477:                                             ; preds = %2476
  br label %2700

2478:                                             ; preds = %218
  %2479 = load i32, ptr %24, align 4, !tbaa !15
  %2480 = sext i32 %2479 to i64
  %2481 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2480)
          to label %2482 unwind label %231

2482:                                             ; preds = %2478
  %2483 = load ptr, ptr %13, align 8, !tbaa !5
  %2484 = load i32, ptr %24, align 4, !tbaa !15
  %2485 = sext i32 %2484 to i64
  %2486 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2483, i64 noundef %2485)
          to label %2487 unwind label %231

2487:                                             ; preds = %2482
  %2488 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2486)
          to label %2489 unwind label %231

2489:                                             ; preds = %2487
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2481, double noundef %2488)
          to label %2490 unwind label %231

2490:                                             ; preds = %2489
  br label %2700

2491:                                             ; preds = %218
  %2492 = load i32, ptr %24, align 4, !tbaa !15
  %2493 = sext i32 %2492 to i64
  %2494 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2493)
          to label %2495 unwind label %231

2495:                                             ; preds = %2491
  %2496 = load ptr, ptr %13, align 8, !tbaa !5
  %2497 = load i32, ptr %24, align 4, !tbaa !15
  %2498 = sext i32 %2497 to i64
  %2499 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2496, i64 noundef %2498)
          to label %2500 unwind label %231

2500:                                             ; preds = %2495
  %2501 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2499)
          to label %2502 unwind label %231

2502:                                             ; preds = %2500
  %2503 = fptosi double %2501 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %2494, i8 noundef signext %2503)
          to label %2504 unwind label %231

2504:                                             ; preds = %2502
  br label %2700

2505:                                             ; preds = %218
  %2506 = load i32, ptr %24, align 4, !tbaa !15
  %2507 = sext i32 %2506 to i64
  %2508 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2507)
          to label %2509 unwind label %231

2509:                                             ; preds = %2505
  %2510 = load ptr, ptr %13, align 8, !tbaa !5
  %2511 = load i32, ptr %24, align 4, !tbaa !15
  %2512 = sext i32 %2511 to i64
  %2513 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2510, i64 noundef %2512)
          to label %2514 unwind label %231

2514:                                             ; preds = %2509
  %2515 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2513)
          to label %2516 unwind label %231

2516:                                             ; preds = %2514
  %2517 = fptosi double %2515 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %2508, i16 noundef signext %2517)
          to label %2518 unwind label %231

2518:                                             ; preds = %2516
  br label %2700

2519:                                             ; preds = %218
  %2520 = load i32, ptr %24, align 4, !tbaa !15
  %2521 = sext i32 %2520 to i64
  %2522 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2521)
          to label %2523 unwind label %231

2523:                                             ; preds = %2519
  %2524 = load ptr, ptr %13, align 8, !tbaa !5
  %2525 = load i32, ptr %24, align 4, !tbaa !15
  %2526 = sext i32 %2525 to i64
  %2527 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2524, i64 noundef %2526)
          to label %2528 unwind label %231

2528:                                             ; preds = %2523
  %2529 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2527)
          to label %2530 unwind label %231

2530:                                             ; preds = %2528
  %2531 = fptosi double %2529 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %2522, i64 noundef %2531)
          to label %2532 unwind label %231

2532:                                             ; preds = %2530
  br label %2700

2533:                                             ; preds = %218
  %2534 = load i32, ptr %24, align 4, !tbaa !15
  %2535 = sext i32 %2534 to i64
  %2536 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2535)
          to label %2537 unwind label %231

2537:                                             ; preds = %2533
  %2538 = load ptr, ptr %13, align 8, !tbaa !5
  %2539 = load i32, ptr %24, align 4, !tbaa !15
  %2540 = sext i32 %2539 to i64
  %2541 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2538, i64 noundef %2540)
          to label %2542 unwind label %231

2542:                                             ; preds = %2537
  %2543 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2541)
          to label %2544 unwind label %231

2544:                                             ; preds = %2542
  %2545 = fptoui double %2543 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2536, i8 noundef zeroext %2545)
          to label %2546 unwind label %231

2546:                                             ; preds = %2544
  br label %2700

2547:                                             ; preds = %218
  %2548 = load i32, ptr %24, align 4, !tbaa !15
  %2549 = sext i32 %2548 to i64
  %2550 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2549)
          to label %2551 unwind label %231

2551:                                             ; preds = %2547
  %2552 = load ptr, ptr %13, align 8, !tbaa !5
  %2553 = load i32, ptr %24, align 4, !tbaa !15
  %2554 = sext i32 %2553 to i64
  %2555 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2552, i64 noundef %2554)
          to label %2556 unwind label %231

2556:                                             ; preds = %2551
  %2557 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2555)
          to label %2558 unwind label %231

2558:                                             ; preds = %2556
  %2559 = fptoui double %2557 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2550, i16 noundef zeroext %2559)
          to label %2560 unwind label %231

2560:                                             ; preds = %2558
  br label %2700

2561:                                             ; preds = %218
  %2562 = load i32, ptr %24, align 4, !tbaa !15
  %2563 = sext i32 %2562 to i64
  %2564 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2563)
          to label %2565 unwind label %231

2565:                                             ; preds = %2561
  %2566 = load ptr, ptr %13, align 8, !tbaa !5
  %2567 = load i32, ptr %24, align 4, !tbaa !15
  %2568 = sext i32 %2567 to i64
  %2569 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2566, i64 noundef %2568)
          to label %2570 unwind label %231

2570:                                             ; preds = %2565
  %2571 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2569)
          to label %2572 unwind label %231

2572:                                             ; preds = %2570
  %2573 = fptoui double %2571 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2564, i64 noundef %2573)
          to label %2574 unwind label %231

2574:                                             ; preds = %2572
  br label %2700

2575:                                             ; preds = %218
  %2576 = load i32, ptr %24, align 4, !tbaa !15
  %2577 = sext i32 %2576 to i64
  %2578 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2577)
          to label %2579 unwind label %231

2579:                                             ; preds = %2575
  %2580 = load ptr, ptr %13, align 8, !tbaa !5
  %2581 = load i32, ptr %24, align 4, !tbaa !15
  %2582 = sext i32 %2581 to i64
  %2583 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2580, i64 noundef %2582)
          to label %2584 unwind label %231

2584:                                             ; preds = %2579
  %2585 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2583)
          to label %2586 unwind label %231

2586:                                             ; preds = %2584
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2578, double noundef %2585)
          to label %2587 unwind label %231

2587:                                             ; preds = %2586
  br label %2700

2588:                                             ; preds = %218
  %2589 = load i32, ptr %24, align 4, !tbaa !15
  %2590 = sext i32 %2589 to i64
  %2591 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2590)
          to label %2592 unwind label %231

2592:                                             ; preds = %2588
  %2593 = load ptr, ptr %13, align 8, !tbaa !5
  %2594 = load i32, ptr %24, align 4, !tbaa !15
  %2595 = sext i32 %2594 to i64
  %2596 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2593, i64 noundef %2595)
          to label %2597 unwind label %231

2597:                                             ; preds = %2592
  %2598 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2596)
          to label %2599 unwind label %231

2599:                                             ; preds = %2597
  %2600 = fptosi double %2598 to i8
  invoke void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %2591, i8 noundef signext %2600)
          to label %2601 unwind label %231

2601:                                             ; preds = %2599
  br label %2700

2602:                                             ; preds = %218
  %2603 = load i32, ptr %24, align 4, !tbaa !15
  %2604 = sext i32 %2603 to i64
  %2605 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2604)
          to label %2606 unwind label %231

2606:                                             ; preds = %2602
  %2607 = load ptr, ptr %13, align 8, !tbaa !5
  %2608 = load i32, ptr %24, align 4, !tbaa !15
  %2609 = sext i32 %2608 to i64
  %2610 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2607, i64 noundef %2609)
          to label %2611 unwind label %231

2611:                                             ; preds = %2606
  %2612 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2610)
          to label %2613 unwind label %231

2613:                                             ; preds = %2611
  %2614 = fptosi double %2612 to i16
  invoke void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %2605, i16 noundef signext %2614)
          to label %2615 unwind label %231

2615:                                             ; preds = %2613
  br label %2700

2616:                                             ; preds = %218
  %2617 = load i32, ptr %24, align 4, !tbaa !15
  %2618 = sext i32 %2617 to i64
  %2619 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2618)
          to label %2620 unwind label %231

2620:                                             ; preds = %2616
  %2621 = load ptr, ptr %13, align 8, !tbaa !5
  %2622 = load i32, ptr %24, align 4, !tbaa !15
  %2623 = sext i32 %2622 to i64
  %2624 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2621, i64 noundef %2623)
          to label %2625 unwind label %231

2625:                                             ; preds = %2620
  %2626 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2624)
          to label %2627 unwind label %231

2627:                                             ; preds = %2625
  %2628 = fptosi double %2626 to i64
  invoke void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %2619, i64 noundef %2628)
          to label %2629 unwind label %231

2629:                                             ; preds = %2627
  br label %2700

2630:                                             ; preds = %218
  %2631 = load i32, ptr %24, align 4, !tbaa !15
  %2632 = sext i32 %2631 to i64
  %2633 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2632)
          to label %2634 unwind label %231

2634:                                             ; preds = %2630
  %2635 = load ptr, ptr %13, align 8, !tbaa !5
  %2636 = load i32, ptr %24, align 4, !tbaa !15
  %2637 = sext i32 %2636 to i64
  %2638 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2635, i64 noundef %2637)
          to label %2639 unwind label %231

2639:                                             ; preds = %2634
  %2640 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2638)
          to label %2641 unwind label %231

2641:                                             ; preds = %2639
  %2642 = fptoui double %2640 to i8
  invoke void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %2633, i8 noundef zeroext %2642)
          to label %2643 unwind label %231

2643:                                             ; preds = %2641
  br label %2700

2644:                                             ; preds = %218
  %2645 = load i32, ptr %24, align 4, !tbaa !15
  %2646 = sext i32 %2645 to i64
  %2647 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2646)
          to label %2648 unwind label %231

2648:                                             ; preds = %2644
  %2649 = load ptr, ptr %13, align 8, !tbaa !5
  %2650 = load i32, ptr %24, align 4, !tbaa !15
  %2651 = sext i32 %2650 to i64
  %2652 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2649, i64 noundef %2651)
          to label %2653 unwind label %231

2653:                                             ; preds = %2648
  %2654 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2652)
          to label %2655 unwind label %231

2655:                                             ; preds = %2653
  %2656 = fptoui double %2654 to i16
  invoke void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %2647, i16 noundef zeroext %2656)
          to label %2657 unwind label %231

2657:                                             ; preds = %2655
  br label %2700

2658:                                             ; preds = %218
  %2659 = load i32, ptr %24, align 4, !tbaa !15
  %2660 = sext i32 %2659 to i64
  %2661 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2660)
          to label %2662 unwind label %231

2662:                                             ; preds = %2658
  %2663 = load ptr, ptr %13, align 8, !tbaa !5
  %2664 = load i32, ptr %24, align 4, !tbaa !15
  %2665 = sext i32 %2664 to i64
  %2666 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2663, i64 noundef %2665)
          to label %2667 unwind label %231

2667:                                             ; preds = %2662
  %2668 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2666)
          to label %2669 unwind label %231

2669:                                             ; preds = %2667
  %2670 = fptoui double %2668 to i64
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2661, i64 noundef %2670)
          to label %2671 unwind label %231

2671:                                             ; preds = %2669
  br label %2700

2672:                                             ; preds = %218
  %2673 = load i32, ptr %24, align 4, !tbaa !15
  %2674 = sext i32 %2673 to i64
  %2675 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2674)
          to label %2676 unwind label %231

2676:                                             ; preds = %2672
  %2677 = load ptr, ptr %13, align 8, !tbaa !5
  %2678 = load i32, ptr %24, align 4, !tbaa !15
  %2679 = sext i32 %2678 to i64
  %2680 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2677, i64 noundef %2679)
          to label %2681 unwind label %231

2681:                                             ; preds = %2676
  %2682 = invoke noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2680)
          to label %2683 unwind label %231

2683:                                             ; preds = %2681
  invoke void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %2675, double noundef %2682)
          to label %2684 unwind label %231

2684:                                             ; preds = %2683
  br label %2700

2685:                                             ; preds = %218, %218, %218
  %2686 = load i32, ptr %24, align 4, !tbaa !15
  %2687 = sext i32 %2686 to i64
  %2688 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %2687)
          to label %2689 unwind label %231

2689:                                             ; preds = %2685
  %2690 = load ptr, ptr %13, align 8, !tbaa !5
  %2691 = load i32, ptr %24, align 4, !tbaa !15
  %2692 = sext i32 %2691 to i64
  %2693 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %2690, i64 noundef %2692)
          to label %2694 unwind label %231

2694:                                             ; preds = %2689
  %2695 = invoke noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %2693)
          to label %2696 unwind label %231

2696:                                             ; preds = %2694
  invoke void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %2688, i64 noundef %2695)
          to label %2697 unwind label %231

2697:                                             ; preds = %2696
  br label %2700

2698:                                             ; preds = %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218, %218
  br label %2699

2699:                                             ; preds = %2698, %218
  store ptr null, ptr %4, align 8
  store i32 1, ptr %11, align 4
  br label %2704

2700:                                             ; preds = %2697, %2684, %2671, %2657, %2643, %2629, %2615, %2601, %2587, %2574, %2560, %2546, %2532, %2518, %2504, %2490, %2477, %2464, %2450, %2436, %2422, %2408, %2394, %2380, %2366, %2352, %2338, %2324, %2310, %2296, %2282, %2268, %2254, %2240, %2226, %2213, %2199, %2185, %2171, %2158, %2144, %2130, %2116, %2102, %2088, %2074, %2060, %2046, %2032, %2018, %2004, %1990, %1976, %1962, %1948, %1933, %1919, %1905, %1891, %1877, %1863, %1849, %1835, %1821, %1807, %1793, %1779, %1765, %1751, %1737, %1723, %1710, %1696, %1682, %1668, %1655, %1641, %1627, %1613, %1599, %1585, %1571, %1557, %1543, %1529, %1515, %1501, %1487, %1473, %1459, %1445, %1431, %1418, %1404, %1390, %1376, %1363, %1349, %1335, %1321, %1307, %1293, %1279, %1265, %1251, %1237, %1223, %1209, %1195, %1181, %1166, %1151, %1136, %1121, %1107, %1093, %1080, %1066, %1052, %1038, %1024, %1011, %998, %984, %970, %956, %942, %927, %908, %891, %868, %822, %807, %769, %755, %688, %630, %615, %601, %587, %573, %559, %545, %539, %525, %511, %497, %483, %469, %455, %440, %421, %409, %382
  br label %2701

2701:                                             ; preds = %2700
  %2702 = load i32, ptr %24, align 4, !tbaa !15
  %2703 = add nsw i32 %2702, 1
  store i32 %2703, ptr %24, align 4, !tbaa !15
  br label %213, !llvm.loop !30

2704:                                             ; preds = %2699, %408, %381, %217
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  %2705 = load i32, ptr %11, align 4
  switch i32 %2705, label %2747 [
    i32 16, label %2707
  ]

2706:                                             ; preds = %909, %877, %422, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %2748

2707:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %2708 = invoke noundef ptr @_ZN11TIntermNodenwEm(i64 noundef 200)
          to label %2709 unwind label %2738

2709:                                             ; preds = %2707
  %2710 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7glslang20TIntermConstantUnionC2ERKNS_16TConstUnionArrayERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193) %2708, ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(144) %2710)
          to label %2711 unwind label %2742

2711:                                             ; preds = %2709
  store ptr %2708, ptr %31, align 8, !tbaa !5
  %2712 = load ptr, ptr %31, align 8, !tbaa !5
  %2713 = load ptr, ptr %2712, align 8, !tbaa !13
  %2714 = getelementptr inbounds ptr, ptr %2713, i64 31
  %2715 = load ptr, ptr %2714, align 8
  %2716 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2715(ptr noundef nonnull align 8 dereferenceable(176) %2712)
          to label %2717 unwind label %2738

2717:                                             ; preds = %2711
  %2718 = load ptr, ptr %2716, align 8, !tbaa !13
  %2719 = getelementptr inbounds ptr, ptr %2718, i64 10
  %2720 = load ptr, ptr %2719, align 8
  %2721 = invoke noundef nonnull align 8 dereferenceable(72) ptr %2720(ptr noundef nonnull align 8 dereferenceable(144) %2716)
          to label %2722 unwind label %2738

2722:                                             ; preds = %2717
  %2723 = getelementptr inbounds %"class.glslang::TQualifier", ptr %2721, i32 0, i32 1
  %2724 = load i64, ptr %2723, align 8
  %2725 = and i64 %2724, -64
  %2726 = or i64 %2725, 2
  store i64 %2726, ptr %2723, align 8
  %2727 = load ptr, ptr %31, align 8, !tbaa !5
  %2728 = load ptr, ptr %32, align 8, !tbaa !13
  %2729 = getelementptr inbounds ptr, ptr %2728, i64 0
  %2730 = load ptr, ptr %2729, align 8
  %2731 = invoke noundef nonnull align 8 dereferenceable(24) ptr %2730(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %2732 unwind label %2738

2732:                                             ; preds = %2722
  %2733 = load ptr, ptr %2727, align 8, !tbaa !13
  %2734 = getelementptr inbounds ptr, ptr %2733, i64 1
  %2735 = load ptr, ptr %2734, align 8
  invoke void %2735(ptr noundef nonnull align 8 dereferenceable(32) %2727, ptr noundef nonnull align 8 dereferenceable(24) %2731)
          to label %2736 unwind label %2738

2736:                                             ; preds = %2732
  %2737 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %2737, ptr %4, align 8
  store i32 1, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %2747

2738:                                             ; preds = %2732, %2722, %2717, %2711, %2707
  %2739 = landingpad { ptr, i32 }
          cleanup
  %2740 = extractvalue { ptr, i32 } %2739, 0
  store ptr %2740, ptr %14, align 8
  %2741 = extractvalue { ptr, i32 } %2739, 1
  store i32 %2741, ptr %15, align 4
  br label %2746

2742:                                             ; preds = %2709
  %2743 = landingpad { ptr, i32 }
          cleanup
  %2744 = extractvalue { ptr, i32 } %2743, 0
  store ptr %2744, ptr %14, align 8
  %2745 = extractvalue { ptr, i32 } %2743, 1
  store i32 %2745, ptr %15, align 4
  call void @_ZN11TIntermNodedlEPv(ptr noundef %2708) #8
  br label %2746

2746:                                             ; preds = %2742, %2738
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %2748

2747:                                             ; preds = %2736, %2704, %200
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #8
  br label %2749

2748:                                             ; preds = %2746, %2706, %199, %165, %131, %52
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %2751

2749:                                             ; preds = %2747, %40
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  %2750 = load ptr, ptr %4, align 8
  ret ptr %2750

2751:                                             ; preds = %2748
  %2752 = load ptr, ptr %14, align 8
  %2753 = load i32, ptr %15, align 4
  %2754 = insertvalue { ptr, i32 } poison, ptr %2752, 0
  %2755 = insertvalue { ptr, i32 } %2754, i32 %2753, 1
  resume { ptr, i32 } %2755
}

; Function Attrs: nounwind
declare double @sqrt(double noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZNK7glslang11TConstUnioncoEv(ptr noundef nonnull align 8 dereferenceable(12)) #2 align 2

; Function Attrs: nounwind
declare double @sin(double noundef) #6

; Function Attrs: nounwind
declare double @cos(double noundef) #6

; Function Attrs: nounwind
declare double @tan(double noundef) #6

; Function Attrs: nounwind
declare double @asin(double noundef) #6

; Function Attrs: nounwind
declare double @acos(double noundef) #6

; Function Attrs: nounwind
declare double @atan(double noundef) #6

; Function Attrs: nounwind
declare double @exp(double noundef) #6

; Function Attrs: nounwind
declare double @log(double noundef) #6

; Function Attrs: nounwind
declare double @exp2(double noundef) #6

; Function Attrs: nounwind
declare double @log2(double noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang5IsNanEd(double noundef) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang10IsInfinityEd(double noundef) #7

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTSN7glslang9TOperatorE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"double", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = distinct !{!22, !20}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = distinct !{!25, !20}
!26 = !{i64 0, i64 8, !27, i64 8, i64 4, !28}
!27 = !{!7, !7, i64 0}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTSN7glslang10TBasicTypeE", !7, i64 0}
!30 = distinct !{!30, !20}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.glslang::TConstUnionArray" = type { ptr, ptr }

@.str.1 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1
@__PRETTY_FUNCTION__._ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE = external hidden unnamed_addr constant [90 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK7glslang5TType20computeNumComponentsEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang16TConstUnionArrayC2Ei(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12), i8 noundef signext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12), i8 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12), i16 noundef signext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12), i16 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12), i1 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN11TIntermNodenwEm(i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7glslang20TIntermConstantUnionC2ERKNS_16TConstUnionArrayERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(144)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11TIntermNodedlEPv(ptr noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(144) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.glslang::TConstUnionArray", align 8
  %5 = load ptr, ptr %0, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %5, i64 240
  %7 = load ptr, ptr %6, align 8
  %8 = tail call noundef nonnull align 8 dereferenceable(144) ptr %7(ptr noundef nonnull align 8 dereferenceable(176) %0)
  %9 = tail call noundef i32 @_ZNK7glslang5TType20computeNumComponentsEv(ptr noundef nonnull align 8 dereferenceable(144) %8)
  switch i32 %1, label %12 [
    i32 297, label %13
    i32 446, label %13
    i32 447, label %13
    i32 271, label %13
    i32 304, label %963
    i32 305, label %963
    i32 239, label %13
    i32 241, label %13
    i32 247, label %13
    i32 240, label %10
    i32 242, label %10
    i32 248, label %10
    i32 265, label %11
    i32 266, label %11
    i32 267, label %11
    i32 268, label %11
    i32 269, label %11
    i32 270, label %11
    i32 275, label %11
  ]

10:                                               ; preds = %3, %3, %3
  br label %13

11:                                               ; preds = %3, %3, %3, %3, %3, %3, %3
  br label %13

12:                                               ; preds = %3
  br label %13

13:                                               ; preds = %3, %3, %3, %3, %3, %3, %3, %12, %11, %10
  %.0572 = phi i1 [ true, %12 ], [ false, %11 ], [ false, %10 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ], [ false, %3 ]
  %.0571 = phi i32 [ %9, %12 ], [ %9, %11 ], [ 2, %10 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ], [ 1, %3 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  call void @_ZN7glslang16TConstUnionArrayC2Ei(ptr noundef nonnull align 8 dereferenceable(16) %4, i32 noundef %.0571)
  %14 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang20TIntermConstantUnion13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(193) %0)
  switch i32 %1, label %40 [
    i32 271, label %17
    i32 275, label %17
    i32 446, label %.preheader599
    i32 447, label %.preheader600
    i32 239, label %.loopexit.split
    i32 241, label %.loopexit.split
    i32 247, label %.loopexit.split
    i32 265, label %.loopexit.split
    i32 266, label %.loopexit.split
    i32 267, label %.loopexit.split
    i32 268, label %.loopexit.split
    i32 269, label %.loopexit.split
    i32 270, label %.loopexit.split
    i32 240, label %.loopexit.split
    i32 242, label %.loopexit.split
    i32 248, label %.loopexit.split
    i32 297, label %.loopexit.split
    i32 298, label %.loopexit.split
    i32 299, label %.loopexit.split
  ]

.preheader600:                                    ; preds = %13
  %15 = icmp sgt i32 %9, 0
  br i1 %15, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.preheader600
  %wide.trip.count = zext nneg i32 %9 to i64
  br label %.lr.ph

.preheader599:                                    ; preds = %13
  %16 = icmp sgt i32 %9, 0
  br i1 %16, label %.lr.ph605.preheader, label %._crit_edge606

.lr.ph605.preheader:                              ; preds = %.preheader599
  %wide.trip.count623 = zext nneg i32 %9 to i64
  br label %.lr.ph605

17:                                               ; preds = %13, %13
  %18 = icmp sgt i32 %9, 0
  br i1 %18, label %.lr.ph611.preheader, label %._crit_edge612.thread

.lr.ph611.preheader:                              ; preds = %17
  %wide.trip.count628 = zext nneg i32 %9 to i64
  br label %.lr.ph611

._crit_edge612:                                   ; preds = %.lr.ph611
  %19 = call double @sqrt(double noundef %26) #8
  %20 = icmp eq i32 %1, 271
  br i1 %20, label %27, label %.preheader

._crit_edge612.thread:                            ; preds = %17
  %21 = icmp eq i32 %1, 271
  br i1 %21, label %27, label %.critedge

.preheader:                                       ; preds = %._crit_edge612
  br i1 %18, label %.lr.ph615.preheader, label %.critedge

.lr.ph615.preheader:                              ; preds = %.preheader
  %wide.trip.count633 = zext nneg i32 %9 to i64
  br label %.lr.ph615

.lr.ph611:                                        ; preds = %.lr.ph611.preheader, %.lr.ph611
  %indvars.iv625 = phi i64 [ 0, %.lr.ph611.preheader ], [ %indvars.iv.next626, %.lr.ph611 ]
  %.0581609 = phi double [ 0.000000e+00, %.lr.ph611.preheader ], [ %26, %.lr.ph611 ]
  %22 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv625)
  %23 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %22)
  %24 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv625)
  %25 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %24)
  %26 = call double @llvm.fmuladd.f64(double %23, double %25, double %.0581609)
  %indvars.iv.next626 = add nuw nsw i64 %indvars.iv625, 1
  %exitcond629.not = icmp eq i64 %indvars.iv.next626, %wide.trip.count628
  br i1 %exitcond629.not, label %._crit_edge612, label %.lr.ph611, !llvm.loop !8

27:                                               ; preds = %._crit_edge612.thread, %._crit_edge612
  %28 = phi double [ 0.000000e+00, %._crit_edge612.thread ], [ %19, %._crit_edge612 ]
  %29 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef 0)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %29, double noundef %28)
  br label %.loopexit598

.lr.ph615:                                        ; preds = %.lr.ph615.preheader, %.lr.ph615
  %indvars.iv630 = phi i64 [ 0, %.lr.ph615.preheader ], [ %indvars.iv.next631, %.lr.ph615 ]
  %30 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv630)
  %31 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv630)
  %32 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %31)
  %33 = fdiv double %32, %19
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %30, double noundef %33)
  %indvars.iv.next631 = add nuw nsw i64 %indvars.iv630, 1
  %exitcond634.not = icmp eq i64 %indvars.iv.next631, %wide.trip.count633
  br i1 %exitcond634.not, label %.loopexit598, label %.lr.ph615, !llvm.loop !10

._crit_edge606:                                   ; preds = %.lr.ph605, %.preheader599
  %.0589.lcssa = phi i1 [ false, %.preheader599 ], [ %spec.select, %.lr.ph605 ]
  %34 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef 0)
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %34, i1 noundef zeroext %.0589.lcssa)
  br label %.loopexit598

.lr.ph605:                                        ; preds = %.lr.ph605.preheader, %.lr.ph605
  %indvars.iv621 = phi i64 [ 0, %.lr.ph605.preheader ], [ %indvars.iv.next622, %.lr.ph605 ]
  %.0589603 = phi i1 [ false, %.lr.ph605.preheader ], [ %spec.select, %.lr.ph605 ]
  %35 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv621)
  %36 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %35)
  %spec.select = select i1 %36, i1 true, i1 %.0589603
  %indvars.iv.next622 = add nuw nsw i64 %indvars.iv621, 1
  %exitcond624.not = icmp eq i64 %indvars.iv.next622, %wide.trip.count623
  br i1 %exitcond624.not, label %._crit_edge606, label %.lr.ph605, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %.preheader600
  %.0586.lcssa = phi i1 [ true, %.preheader600 ], [ %spec.select595, %.lr.ph ]
  %37 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef 0)
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %37, i1 noundef zeroext %.0586.lcssa)
  br label %.loopexit598

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %.0586601 = phi i1 [ true, %.lr.ph.preheader ], [ %spec.select595, %.lr.ph ]
  %38 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv)
  %39 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %38)
  %spec.select595 = select i1 %39, i1 %.0586601, i1 false
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !12

40:                                               ; preds = %13
  br i1 %.0572, label %.loopexit598, label %41

41:                                               ; preds = %40
  call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK7glslang20TIntermConstantUnion4foldENS_9TOperatorERKNS_5TTypeE) #9
  unreachable

.loopexit598:                                     ; preds = %.lr.ph615, %27, %40, %._crit_edge, %._crit_edge606
  %.not597616 = icmp sgt i32 %9, 0
  %.not617 = and i1 %.0572, %.not597616
  br i1 %.not617, label %.lr.ph620, label %.critedge

.lr.ph620:                                        ; preds = %.loopexit598
  switch i32 %1, label %.loopexit.split [
    i32 7, label %.lr.ph620.split
    i32 8, label %.lr.ph620.split
    i32 9, label %.lr.ph620.split
    i32 10, label %.lr.ph620.split
    i32 186, label %.lr.ph620.split
    i32 187, label %.lr.ph620.split
    i32 188, label %.lr.ph620.split
    i32 189, label %.lr.ph620.split
    i32 190, label %.lr.ph620.split
    i32 191, label %.lr.ph620.split
    i32 192, label %.lr.ph620.split
    i32 193, label %.lr.ph620.split
    i32 282, label %.lr.ph620.split
    i32 283, label %.lr.ph620.split
    i32 284, label %.lr.ph620.split
    i32 285, label %.lr.ph620.split
    i32 286, label %.lr.ph620.split
    i32 287, label %.lr.ph620.split
    i32 288, label %.lr.ph620.split
    i32 289, label %.lr.ph620.split
    i32 290, label %.lr.ph620.split
    i32 201, label %.lr.ph620.split
    i32 202, label %.lr.ph620.split
    i32 203, label %.lr.ph620.split
    i32 204, label %.lr.ph620.split
    i32 205, label %.lr.ph620.split
    i32 206, label %.lr.ph620.split
    i32 207, label %.lr.ph620.split
    i32 208, label %.lr.ph620.split
    i32 209, label %.lr.ph620.split
    i32 210, label %.lr.ph620.split
    i32 211, label %.lr.ph620.split
    i32 212, label %.lr.ph620.split
    i32 213, label %.lr.ph620.split
    i32 214, label %.lr.ph620.split
    i32 222, label %.lr.ph620.split
    i32 223, label %.lr.ph620.split
    i32 20, label %.lr.ph620.split
    i32 21, label %.lr.ph620.split
    i32 31, label %.lr.ph620.split
    i32 32, label %.lr.ph620.split
    i32 83, label %.lr.ph620.split
    i32 87, label %.lr.ph620.split
    i32 25, label %.lr.ph620.split
    i32 26, label %.lr.ph620.split
    i32 36, label %.lr.ph620.split
    i32 37, label %.lr.ph620.split
    i32 93, label %.lr.ph620.split
    i32 94, label %.lr.ph620.split
    i32 96, label %.lr.ph620.split
    i32 97, label %.lr.ph620.split
    i32 147, label %.lr.ph620.split
    i32 137, label %.lr.ph620.split
    i32 134, label %.lr.ph620.split
    i32 144, label %.lr.ph620.split
    i32 130, label %.lr.ph620.split
    i32 140, label %.lr.ph620.split
    i32 16, label %.lr.ph620.split
    i32 17, label %.lr.ph620.split
    i32 18, label %.lr.ph620.split
    i32 19, label %.lr.ph620.split
    i32 22, label %.lr.ph620.split
    i32 23, label %.lr.ph620.split
    i32 24, label %.lr.ph620.split
    i32 27, label %.lr.ph620.split
    i32 28, label %.lr.ph620.split
    i32 29, label %.lr.ph620.split
    i32 30, label %.lr.ph620.split
    i32 33, label %.lr.ph620.split
    i32 34, label %.lr.ph620.split
    i32 35, label %.lr.ph620.split
    i32 38, label %.lr.ph620.split
    i32 39, label %.lr.ph620.split
    i32 40, label %.lr.ph620.split
    i32 41, label %.lr.ph620.split
    i32 42, label %.lr.ph620.split
    i32 43, label %.lr.ph620.split
    i32 44, label %.lr.ph620.split
    i32 45, label %.lr.ph620.split
    i32 46, label %.lr.ph620.split
    i32 47, label %.lr.ph620.split
    i32 48, label %.lr.ph620.split
    i32 49, label %.lr.ph620.split
    i32 50, label %.lr.ph620.split
    i32 51, label %.lr.ph620.split
    i32 52, label %.lr.ph620.split
    i32 53, label %.lr.ph620.split
    i32 54, label %.lr.ph620.split
    i32 55, label %.lr.ph620.split
    i32 56, label %.lr.ph620.split
    i32 57, label %.lr.ph620.split
    i32 58, label %.lr.ph620.split
    i32 59, label %.lr.ph620.split
    i32 60, label %.lr.ph620.split
    i32 61, label %.lr.ph620.split
    i32 62, label %.lr.ph620.split
    i32 63, label %.lr.ph620.split
    i32 64, label %.lr.ph620.split
    i32 65, label %.lr.ph620.split
    i32 66, label %.lr.ph620.split
    i32 67, label %.lr.ph620.split
    i32 68, label %.lr.ph620.split
    i32 69, label %.lr.ph620.split
    i32 70, label %.lr.ph620.split
    i32 71, label %.lr.ph620.split
    i32 72, label %.lr.ph620.split
    i32 73, label %.lr.ph620.split
    i32 74, label %.lr.ph620.split
    i32 75, label %.lr.ph620.split
    i32 76, label %.lr.ph620.split
    i32 77, label %.lr.ph620.split
    i32 78, label %.lr.ph620.split
    i32 79, label %.lr.ph620.split
    i32 80, label %.lr.ph620.split
    i32 81, label %.lr.ph620.split
    i32 82, label %.lr.ph620.split
    i32 84, label %.lr.ph620.split
    i32 85, label %.lr.ph620.split
    i32 86, label %.lr.ph620.split
    i32 88, label %.lr.ph620.split
    i32 89, label %.lr.ph620.split
    i32 90, label %.lr.ph620.split
    i32 91, label %.lr.ph620.split
    i32 92, label %.lr.ph620.split
    i32 95, label %.lr.ph620.split
    i32 98, label %.lr.ph620.split
    i32 99, label %.lr.ph620.split
    i32 100, label %.lr.ph620.split
    i32 101, label %.lr.ph620.split
    i32 102, label %.lr.ph620.split
    i32 103, label %.lr.ph620.split
    i32 104, label %.lr.ph620.split
    i32 105, label %.lr.ph620.split
    i32 106, label %.lr.ph620.split
    i32 107, label %.lr.ph620.split
    i32 108, label %.lr.ph620.split
    i32 109, label %.lr.ph620.split
    i32 110, label %.lr.ph620.split
    i32 111, label %.lr.ph620.split
    i32 112, label %.lr.ph620.split
    i32 113, label %.lr.ph620.split
    i32 114, label %.lr.ph620.split
    i32 115, label %.lr.ph620.split
    i32 116, label %.lr.ph620.split
    i32 117, label %.lr.ph620.split
    i32 118, label %.lr.ph620.split
    i32 119, label %.lr.ph620.split
    i32 120, label %.lr.ph620.split
    i32 121, label %.lr.ph620.split
    i32 122, label %.lr.ph620.split
    i32 123, label %.lr.ph620.split
    i32 124, label %.lr.ph620.split
    i32 125, label %.lr.ph620.split
    i32 126, label %.lr.ph620.split
    i32 127, label %.lr.ph620.split
    i32 128, label %.lr.ph620.split
    i32 129, label %.lr.ph620.split
    i32 131, label %.lr.ph620.split
    i32 132, label %.lr.ph620.split
    i32 133, label %.lr.ph620.split
    i32 135, label %.lr.ph620.split
    i32 136, label %.lr.ph620.split
    i32 138, label %.lr.ph620.split
    i32 139, label %.lr.ph620.split
    i32 141, label %.lr.ph620.split
    i32 142, label %.lr.ph620.split
    i32 143, label %.lr.ph620.split
    i32 145, label %.lr.ph620.split
    i32 146, label %.lr.ph620.split
    i32 149, label %.lr.ph620.split
    i32 148, label %.lr.ph620.split
    i32 571, label %.lr.ph620.split
  ]

.lr.ph620.split:                                  ; preds = %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620, %.lr.ph620
  %42 = zext nneg i32 %9 to i64
  br label %43

43:                                               ; preds = %.lr.ph620.split, %933
  %indvars.iv635 = phi i64 [ 0, %.lr.ph620.split ], [ %indvars.iv.next636, %933 ]
  switch i32 %1, label %929 [
    i32 7, label %44
    i32 8, label %108
    i32 9, label %108
    i32 10, label %124
    i32 186, label %131
    i32 187, label %137
    i32 188, label %143
    i32 189, label %148
    i32 190, label %153
    i32 191, label %158
    i32 192, label %163
    i32 193, label %168
    i32 282, label %173
    i32 283, label %173
    i32 284, label %173
    i32 285, label %173
    i32 286, label %173
    i32 287, label %173
    i32 288, label %173
    i32 289, label %173
    i32 290, label %173
    i32 201, label %175
    i32 202, label %180
    i32 203, label %185
    i32 204, label %190
    i32 205, label %195
    i32 206, label %200
    i32 207, label %206
    i32 208, label %227
    i32 209, label %253
    i32 210, label %258
    i32 211, label %269
    i32 212, label %275
    i32 213, label %293
    i32 214, label %298
    i32 222, label %304
    i32 223, label %310
    i32 20, label %316
    i32 21, label %321
    i32 31, label %326
    i32 32, label %331
    i32 83, label %336
    i32 87, label %340
    i32 25, label %344
    i32 26, label %344
    i32 36, label %349
    i32 37, label %349
    i32 93, label %354
    i32 94, label %354
    i32 96, label %359
    i32 97, label %359
    i32 147, label %364
    i32 137, label %364
    i32 134, label %368
    i32 144, label %368
    i32 130, label %373
    i32 140, label %373
    i32 16, label %378
    i32 17, label %383
    i32 18, label %388
    i32 19, label %393
    i32 22, label %398
    i32 23, label %403
    i32 24, label %408
    i32 27, label %413
    i32 28, label %418
    i32 29, label %423
    i32 30, label %428
    i32 33, label %433
    i32 34, label %438
    i32 35, label %443
    i32 38, label %448
    i32 39, label %453
    i32 40, label %458
    i32 41, label %463
    i32 42, label %467
    i32 43, label %472
    i32 44, label %477
    i32 45, label %482
    i32 46, label %486
    i32 47, label %491
    i32 48, label %496
    i32 49, label %501
    i32 50, label %506
    i32 51, label %511
    i32 52, label %516
    i32 53, label %521
    i32 54, label %526
    i32 55, label %531
    i32 56, label %536
    i32 57, label %541
    i32 58, label %546
    i32 59, label %551
    i32 60, label %556
    i32 61, label %561
    i32 62, label %566
    i32 63, label %570
    i32 64, label %575
    i32 65, label %580
    i32 66, label %585
    i32 67, label %589
    i32 68, label %594
    i32 69, label %599
    i32 70, label %604
    i32 71, label %609
    i32 72, label %614
    i32 73, label %619
    i32 74, label %624
    i32 75, label %629
    i32 76, label %634
    i32 77, label %639
    i32 78, label %644
    i32 79, label %649
    i32 80, label %654
    i32 81, label %659
    i32 82, label %664
    i32 84, label %670
    i32 85, label %675
    i32 86, label %680
    i32 88, label %685
    i32 89, label %690
    i32 90, label %695
    i32 91, label %700
    i32 92, label %705
    i32 95, label %710
    i32 98, label %715
    i32 99, label %720
    i32 100, label %725
    i32 101, label %730
    i32 102, label %735
    i32 103, label %740
    i32 104, label %745
    i32 105, label %749
    i32 106, label %754
    i32 107, label %759
    i32 108, label %764
    i32 109, label %768
    i32 110, label %773
    i32 111, label %778
    i32 112, label %783
    i32 113, label %788
    i32 114, label %793
    i32 115, label %798
    i32 116, label %803
    i32 117, label %808
    i32 118, label %813
    i32 119, label %818
    i32 120, label %823
    i32 121, label %828
    i32 122, label %833
    i32 123, label %838
    i32 124, label %843
    i32 125, label %848
    i32 126, label %853
    i32 127, label %857
    i32 128, label %861
    i32 129, label %866
    i32 131, label %871
    i32 132, label %876
    i32 133, label %881
    i32 135, label %886
    i32 136, label %891
    i32 138, label %895
    i32 139, label %900
    i32 141, label %905
    i32 142, label %910
    i32 143, label %915
    i32 145, label %920
    i32 146, label %925
  ]

44:                                               ; preds = %43
  %45 = load ptr, ptr %0, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %45, i64 240
  %47 = load ptr, ptr %46, align 8
  %48 = invoke noundef nonnull align 8 dereferenceable(144) ptr %47(ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %49 unwind label %55

49:                                               ; preds = %44
  %50 = load ptr, ptr %48, align 8, !tbaa !5
  %51 = getelementptr inbounds i8, ptr %50, i64 56
  %52 = load ptr, ptr %51, align 8
  %53 = invoke noundef i32 %52(ptr noundef nonnull align 8 dereferenceable(144) %48)
          to label %54 unwind label %55

54:                                               ; preds = %49
  switch i32 %53, label %.loopexit.split [
    i32 2, label %57
    i32 3, label %57
    i32 1, label %57
    i32 8, label %62
    i32 9, label %73
    i32 4, label %78
    i32 5, label %83
    i32 6, label %88
    i32 7, label %93
    i32 10, label %98
    i32 11, label %103
  ]

55:                                               ; preds = %310, %304, %113, %108, %49, %44
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %962

57:                                               ; preds = %54, %54, %54
  %58 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %59 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %60 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %59)
  %61 = fneg double %60
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %58, double noundef %61)
  br label %933

62:                                               ; preds = %54
  %63 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %64 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %65 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %64)
  %66 = icmp eq i32 %65, -2147483648
  br i1 %66, label %71, label %67

67:                                               ; preds = %62
  %68 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %69 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %68)
  %70 = sub nsw i32 0, %69
  br label %71

71:                                               ; preds = %62, %67
  %72 = phi i32 [ %70, %67 ], [ -2147483648, %62 ]
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %63, i32 noundef %72)
  br label %933

73:                                               ; preds = %54
  %74 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %75 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %76 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %75)
  %77 = sub nsw i32 0, %76
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %74, i32 noundef %77)
  br label %933

78:                                               ; preds = %54
  %79 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %80 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %81 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %80)
  %82 = sub i8 0, %81
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %79, i8 noundef signext %82)
  br label %933

83:                                               ; preds = %54
  %84 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %85 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %86 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %85)
  %87 = sub i8 0, %86
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %84, i8 noundef zeroext %87)
  br label %933

88:                                               ; preds = %54
  %89 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %90 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %91 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %90)
  %92 = sub i16 0, %91
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %89, i16 noundef signext %92)
  br label %933

93:                                               ; preds = %54
  %94 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %95 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %96 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %95)
  %97 = sub i16 0, %96
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %94, i16 noundef zeroext %97)
  br label %933

98:                                               ; preds = %54
  %99 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %100 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %101 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %100)
  %102 = sub nsw i64 0, %101
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %99, i64 noundef %102)
  br label %933

103:                                              ; preds = %54
  %104 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %105 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %106 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %105)
  %107 = sub nsw i64 0, %106
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %104, i64 noundef %107)
  br label %933

108:                                              ; preds = %43, %43
  %109 = load ptr, ptr %0, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %109, i64 240
  %111 = load ptr, ptr %110, align 8
  %112 = invoke noundef nonnull align 8 dereferenceable(144) ptr %111(ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %113 unwind label %55

113:                                              ; preds = %108
  %114 = load ptr, ptr %112, align 8, !tbaa !5
  %115 = getelementptr inbounds i8, ptr %114, i64 56
  %116 = load ptr, ptr %115, align 8
  %117 = invoke noundef i32 %116(ptr noundef nonnull align 8 dereferenceable(144) %112)
          to label %118 unwind label %55

118:                                              ; preds = %113
  %cond1 = icmp eq i32 %117, 12
  br i1 %cond1, label %119, label %.loopexit.split

119:                                              ; preds = %118
  %120 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %121 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %122 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %121)
  %123 = xor i1 %122, true
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %120, i1 noundef zeroext %123)
  br label %933

124:                                              ; preds = %43
  %125 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %126 = invoke { i64, i32 } @_ZNK7glslang11TConstUnioncoEv(ptr noundef nonnull align 8 dereferenceable(12) %125)
          to label %127 unwind label %129

127:                                              ; preds = %124
  %.fca.0.extract = extractvalue { i64, i32 } %126, 0
  %.fca.1.extract = extractvalue { i64, i32 } %126, 1
  %128 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  store i64 %.fca.0.extract, ptr %128, align 8, !tbaa !13
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %128, i64 8
  store i32 %.fca.1.extract, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !15
  br label %933

129:                                              ; preds = %124
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %962

131:                                              ; preds = %43
  %132 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %133 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %134 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %133)
  %135 = fmul double %134, 0x400921FB54442D18
  %136 = fdiv double %135, 1.800000e+02
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %132, double noundef %136)
  br label %933

137:                                              ; preds = %43
  %138 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %139 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %140 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %139)
  %141 = fmul double %140, 1.800000e+02
  %142 = fdiv double %141, 0x400921FB54442D18
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %138, double noundef %142)
  br label %933

143:                                              ; preds = %43
  %144 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %145 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %146 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %145)
  %147 = call double @sin(double noundef %146) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %144, double noundef %147)
  br label %933

148:                                              ; preds = %43
  %149 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %150 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %151 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %150)
  %152 = call double @cos(double noundef %151) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %149, double noundef %152)
  br label %933

153:                                              ; preds = %43
  %154 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %155 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %156 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %155)
  %157 = call double @tan(double noundef %156) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %154, double noundef %157)
  br label %933

158:                                              ; preds = %43
  %159 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %160 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %161 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %160)
  %162 = call double @asin(double noundef %161) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %159, double noundef %162)
  br label %933

163:                                              ; preds = %43
  %164 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %165 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %166 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %165)
  %167 = call double @acos(double noundef %166) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %164, double noundef %167)
  br label %933

168:                                              ; preds = %43
  %169 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %170 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %171 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %170)
  %172 = call double @atan(double noundef %171) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %169, double noundef %172)
  br label %933

173:                                              ; preds = %43, %43, %43, %43, %43, %43, %43, %43, %43
  %174 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %174, double noundef 0.000000e+00)
  br label %933

175:                                              ; preds = %43
  %176 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %177 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %178 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %177)
  %179 = call double @exp(double noundef %178) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %176, double noundef %179)
  br label %933

180:                                              ; preds = %43
  %181 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %182 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %183 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %182)
  %184 = call double @log(double noundef %183) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %181, double noundef %184)
  br label %933

185:                                              ; preds = %43
  %186 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %187 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %188 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %187)
  %189 = call double @exp2(double noundef %188) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %186, double noundef %189)
  br label %933

190:                                              ; preds = %43
  %191 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %192 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %193 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %192)
  %194 = call double @log2(double noundef %193) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %191, double noundef %194)
  br label %933

195:                                              ; preds = %43
  %196 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %197 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %198 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %197)
  %199 = call double @sqrt(double noundef %198) #8
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %196, double noundef %199)
  br label %933

200:                                              ; preds = %43
  %201 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %202 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %203 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %202)
  %204 = call double @sqrt(double noundef %203) #8
  %205 = fdiv double 1.000000e+00, %204
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %201, double noundef %205)
  br label %933

206:                                              ; preds = %43
  %207 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %208 = call noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %207)
  %209 = icmp eq i32 %208, 2
  br i1 %209, label %210, label %215

210:                                              ; preds = %206
  %211 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %212 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %213 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %212)
  %214 = call double @llvm.fabs.f64(double %213)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %211, double noundef %214)
  br label %933

215:                                              ; preds = %206
  %216 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %217 = call noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %216)
  %218 = icmp eq i32 %217, 8
  br i1 %218, label %219, label %224

219:                                              ; preds = %215
  %220 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %221 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %222 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %221)
  %223 = call i32 @llvm.abs.i32(i32 %222, i1 true)
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %220, i32 noundef %223)
  br label %933

224:                                              ; preds = %215
  %225 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %226 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %226, ptr noundef nonnull align 8 dereferenceable(12) %225, i64 12, i1 false), !tbaa.struct !17
  br label %933

227:                                              ; preds = %43
  %228 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %229 = call noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %228)
  %230 = icmp eq i32 %229, 2
  %231 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %232 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  br i1 %230, label %233, label %244

233:                                              ; preds = %227
  %234 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %232)
  %235 = fcmp oeq double %234, 0.000000e+00
  br i1 %235, label %241, label %236

236:                                              ; preds = %233
  %237 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %238 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %237)
  %239 = fcmp olt double %238, 0.000000e+00
  %240 = select i1 %239, i32 -1, i32 1
  br label %241

241:                                              ; preds = %233, %236
  %242 = phi i32 [ %240, %236 ], [ 0, %233 ]
  %243 = sitofp i32 %242 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %231, double noundef %243)
  br label %933

244:                                              ; preds = %227
  %245 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %232)
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %251, label %247

247:                                              ; preds = %244
  %248 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %249 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %248)
  %.inv = icmp sgt i32 %249, -1
  %250 = select i1 %.inv, i32 1, i32 -1
  br label %251

251:                                              ; preds = %244, %247
  %252 = phi i32 [ %250, %247 ], [ 0, %244 ]
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %231, i32 noundef %252)
  br label %933

253:                                              ; preds = %43
  %254 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %255 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %256 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %255)
  %257 = call double @llvm.floor.f64(double %256)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %254, double noundef %257)
  br label %933

258:                                              ; preds = %43
  %259 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %260 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %259)
  %261 = fcmp ogt double %260, 0.000000e+00
  %262 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %263 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %264 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %263)
  br i1 %261, label %265, label %267

265:                                              ; preds = %258
  %266 = call double @llvm.floor.f64(double %264)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %262, double noundef %266)
  br label %933

267:                                              ; preds = %258
  %268 = call double @llvm.ceil.f64(double %264)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %262, double noundef %268)
  br label %933

269:                                              ; preds = %43
  %270 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %271 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %272 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %271)
  %273 = fadd double %272, 5.000000e-01
  %274 = call double @llvm.floor.f64(double %273)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %270, double noundef %274)
  br label %933

275:                                              ; preds = %43
  %276 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %277 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %276)
  %278 = call double @llvm.floor.f64(double %277)
  %279 = fmul double %278, 5.000000e-01
  %280 = call double @llvm.floor.f64(double %279)
  %281 = fcmp oeq double %279, %280
  %282 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %283 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %282)
  br i1 %281, label %284, label %287

284:                                              ; preds = %275
  %285 = fadd double %283, -5.000000e-01
  %286 = call double @llvm.ceil.f64(double %285)
  br label %290

287:                                              ; preds = %275
  %288 = fadd double %283, 5.000000e-01
  %289 = call double @llvm.floor.f64(double %288)
  br label %290

290:                                              ; preds = %287, %284
  %291 = phi double [ %286, %284 ], [ %289, %287 ]
  %292 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %292, double noundef %291)
  br label %933

293:                                              ; preds = %43
  %294 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %295 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %296 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %295)
  %297 = call double @llvm.ceil.f64(double %296)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %294, double noundef %297)
  br label %933

298:                                              ; preds = %43
  %299 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %300 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %299)
  %301 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %302 = call double @llvm.floor.f64(double %300)
  %303 = fsub double %300, %302
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %301, double noundef %303)
  br label %933

304:                                              ; preds = %43
  %305 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %306 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %307 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %306)
  %308 = invoke noundef zeroext i1 @_ZN7glslang5IsNanEd(double noundef %307)
          to label %309 unwind label %55

309:                                              ; preds = %304
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %305, i1 noundef zeroext %308)
  br label %933

310:                                              ; preds = %43
  %311 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %312 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %313 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %312)
  %314 = invoke noundef zeroext i1 @_ZN7glslang10IsInfinityEd(double noundef %313)
          to label %315 unwind label %55

315:                                              ; preds = %310
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %311, i1 noundef zeroext %314)
  br label %933

316:                                              ; preds = %43
  %317 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %318 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %319 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %318)
  %320 = icmp ne i32 %319, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %317, i1 noundef zeroext %320)
  br label %933

321:                                              ; preds = %43
  %322 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %323 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %324 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %323)
  %325 = icmp ne i32 %324, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %322, i1 noundef zeroext %325)
  br label %933

326:                                              ; preds = %43
  %327 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %328 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %329 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %328)
  %330 = zext i1 %329 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %327, i32 noundef %330)
  br label %933

331:                                              ; preds = %43
  %332 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %333 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %334 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %333)
  %335 = zext i1 %334 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %332, i32 noundef %335)
  br label %933

336:                                              ; preds = %43
  %337 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %338 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %339 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %338)
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %337, i32 noundef %339)
  br label %933

340:                                              ; preds = %43
  %341 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %342 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %343 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %342)
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %341, i32 noundef %343)
  br label %933

344:                                              ; preds = %43, %43
  %345 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %346 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %347 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %346)
  %348 = fcmp une double %347, 0.000000e+00
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %345, i1 noundef zeroext %348)
  br label %933

349:                                              ; preds = %43, %43
  %350 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %351 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %352 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %351)
  %353 = uitofp i1 %352 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %350, double noundef %353)
  br label %933

354:                                              ; preds = %43, %43
  %355 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %356 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %357 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %356)
  %358 = sitofp i32 %357 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %355, double noundef %358)
  br label %933

359:                                              ; preds = %43, %43
  %360 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %361 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %362 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %361)
  %363 = uitofp i32 %362 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %360, double noundef %363)
  br label %933

364:                                              ; preds = %43, %43
  %365 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %366 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %367 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %366)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %365, double noundef %367)
  br label %933

368:                                              ; preds = %43, %43
  %369 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %370 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %371 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %370)
  %372 = fptoui double %371 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %369, i32 noundef %372)
  br label %933

373:                                              ; preds = %43, %43
  %374 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %375 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %376 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %375)
  %377 = fptosi double %376 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %374, i32 noundef %377)
  br label %933

378:                                              ; preds = %43
  %379 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %380 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %381 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %380)
  %382 = icmp ne i8 %381, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %379, i1 noundef zeroext %382)
  br label %933

383:                                              ; preds = %43
  %384 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %385 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %386 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %385)
  %387 = icmp ne i8 %386, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %384, i1 noundef zeroext %387)
  br label %933

388:                                              ; preds = %43
  %389 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %390 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %391 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %390)
  %392 = icmp ne i16 %391, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %389, i1 noundef zeroext %392)
  br label %933

393:                                              ; preds = %43
  %394 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %395 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %396 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %395)
  %397 = icmp ne i16 %396, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %394, i1 noundef zeroext %397)
  br label %933

398:                                              ; preds = %43
  %399 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %400 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %401 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %400)
  %402 = icmp ne i64 %401, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %399, i1 noundef zeroext %402)
  br label %933

403:                                              ; preds = %43
  %404 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %405 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %406 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %405)
  %407 = icmp ne i64 %406, 0
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %404, i1 noundef zeroext %407)
  br label %933

408:                                              ; preds = %43
  %409 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %410 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %411 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %410)
  %412 = fcmp une double %411, 0.000000e+00
  call void @_ZN7glslang11TConstUnion9setBConstEb(ptr noundef nonnull align 8 dereferenceable(12) %409, i1 noundef zeroext %412)
  br label %933

413:                                              ; preds = %43
  %414 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %415 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %416 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %415)
  %417 = zext i1 %416 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %414, i8 noundef signext %417)
  br label %933

418:                                              ; preds = %43
  %419 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %420 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %421 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %420)
  %422 = zext i1 %421 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %419, i8 noundef zeroext %422)
  br label %933

423:                                              ; preds = %43
  %424 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %425 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %426 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %425)
  %427 = zext i1 %426 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %424, i16 noundef signext %427)
  br label %933

428:                                              ; preds = %43
  %429 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %430 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %431 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %430)
  %432 = zext i1 %431 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %429, i16 noundef zeroext %432)
  br label %933

433:                                              ; preds = %43
  %434 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %435 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %436 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %435)
  %437 = zext i1 %436 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %434, i64 noundef %437)
  br label %933

438:                                              ; preds = %43
  %439 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %440 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %441 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %440)
  %442 = zext i1 %441 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %439, i64 noundef %442)
  br label %933

443:                                              ; preds = %43
  %444 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %445 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %446 = call noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12) %445)
  %447 = uitofp i1 %446 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %444, double noundef %447)
  br label %933

448:                                              ; preds = %43
  %449 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %450 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %451 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %450)
  %452 = sext i8 %451 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %449, i16 noundef signext %452)
  br label %933

453:                                              ; preds = %43
  %454 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %455 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %456 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %455)
  %457 = sext i8 %456 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %454, i32 noundef %457)
  br label %933

458:                                              ; preds = %43
  %459 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %460 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %461 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %460)
  %462 = sext i8 %461 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %459, i64 noundef %462)
  br label %933

463:                                              ; preds = %43
  %464 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %465 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %466 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %465)
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %464, i8 noundef zeroext %466)
  br label %933

467:                                              ; preds = %43
  %468 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %469 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %470 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %469)
  %471 = sext i8 %470 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %468, i16 noundef zeroext %471)
  br label %933

472:                                              ; preds = %43
  %473 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %474 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %475 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %474)
  %476 = sext i8 %475 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %473, i32 noundef %476)
  br label %933

477:                                              ; preds = %43
  %478 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %479 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %480 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %479)
  %481 = sext i8 %480 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %478, i64 noundef %481)
  br label %933

482:                                              ; preds = %43
  %483 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %484 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %485 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %484)
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %483, i8 noundef signext %485)
  br label %933

486:                                              ; preds = %43
  %487 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %488 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %489 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %488)
  %490 = zext i8 %489 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %487, i16 noundef signext %490)
  br label %933

491:                                              ; preds = %43
  %492 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %493 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %494 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %493)
  %495 = zext i8 %494 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %492, i32 noundef %495)
  br label %933

496:                                              ; preds = %43
  %497 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %498 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %499 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %498)
  %500 = zext i8 %499 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %497, i64 noundef %500)
  br label %933

501:                                              ; preds = %43
  %502 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %503 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %504 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %503)
  %505 = zext i8 %504 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %502, i16 noundef zeroext %505)
  br label %933

506:                                              ; preds = %43
  %507 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %508 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %509 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %508)
  %510 = zext i8 %509 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %507, i32 noundef %510)
  br label %933

511:                                              ; preds = %43
  %512 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %513 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %514 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %513)
  %515 = zext i8 %514 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %512, i64 noundef %515)
  br label %933

516:                                              ; preds = %43
  %517 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %518 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %519 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %518)
  %520 = sitofp i8 %519 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %517, double noundef %520)
  br label %933

521:                                              ; preds = %43
  %522 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %523 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %524 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %523)
  %525 = sitofp i8 %524 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %522, double noundef %525)
  br label %933

526:                                              ; preds = %43
  %527 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %528 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %529 = call noundef signext i8 @_ZNK7glslang11TConstUnion10getI8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %528)
  %530 = sitofp i8 %529 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %527, double noundef %530)
  br label %933

531:                                              ; preds = %43
  %532 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %533 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %534 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %533)
  %535 = uitofp i8 %534 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %532, double noundef %535)
  br label %933

536:                                              ; preds = %43
  %537 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %538 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %539 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %538)
  %540 = uitofp i8 %539 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %537, double noundef %540)
  br label %933

541:                                              ; preds = %43
  %542 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %543 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %544 = call noundef zeroext i8 @_ZNK7glslang11TConstUnion10getU8ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %543)
  %545 = uitofp i8 %544 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %542, double noundef %545)
  br label %933

546:                                              ; preds = %43
  %547 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %548 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %549 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %548)
  %550 = trunc i16 %549 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %547, i8 noundef signext %550)
  br label %933

551:                                              ; preds = %43
  %552 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %553 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %554 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %553)
  %555 = sext i16 %554 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %552, i32 noundef %555)
  br label %933

556:                                              ; preds = %43
  %557 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %558 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %559 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %558)
  %560 = sext i16 %559 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %557, i64 noundef %560)
  br label %933

561:                                              ; preds = %43
  %562 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %563 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %564 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %563)
  %565 = trunc i16 %564 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %562, i8 noundef zeroext %565)
  br label %933

566:                                              ; preds = %43
  %567 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %568 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %569 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %568)
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %567, i16 noundef zeroext %569)
  br label %933

570:                                              ; preds = %43
  %571 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %572 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %573 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %572)
  %574 = sext i16 %573 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %571, i32 noundef %574)
  br label %933

575:                                              ; preds = %43
  %576 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %577 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %578 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %577)
  %579 = sext i16 %578 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %576, i64 noundef %579)
  br label %933

580:                                              ; preds = %43
  %581 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %582 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %583 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %582)
  %584 = trunc i16 %583 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %581, i8 noundef signext %584)
  br label %933

585:                                              ; preds = %43
  %586 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %587 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %588 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %587)
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %586, i16 noundef signext %588)
  br label %933

589:                                              ; preds = %43
  %590 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %591 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %592 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %591)
  %593 = zext i16 %592 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %590, i32 noundef %593)
  br label %933

594:                                              ; preds = %43
  %595 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %596 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %597 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %596)
  %598 = zext i16 %597 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %595, i64 noundef %598)
  br label %933

599:                                              ; preds = %43
  %600 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %601 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %602 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %601)
  %603 = trunc i16 %602 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %600, i8 noundef zeroext %603)
  br label %933

604:                                              ; preds = %43
  %605 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %606 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %607 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %606)
  %608 = zext i16 %607 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %605, i32 noundef %608)
  br label %933

609:                                              ; preds = %43
  %610 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %611 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %612 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %611)
  %613 = zext i16 %612 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %610, i64 noundef %613)
  br label %933

614:                                              ; preds = %43
  %615 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %616 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %617 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %616)
  %618 = sitofp i16 %617 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %615, double noundef %618)
  br label %933

619:                                              ; preds = %43
  %620 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %621 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %622 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %621)
  %623 = sitofp i16 %622 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %620, double noundef %623)
  br label %933

624:                                              ; preds = %43
  %625 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %626 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %627 = call noundef signext i16 @_ZNK7glslang11TConstUnion11getI16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %626)
  %628 = sitofp i16 %627 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %625, double noundef %628)
  br label %933

629:                                              ; preds = %43
  %630 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %631 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %632 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %631)
  %633 = uitofp i16 %632 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %630, double noundef %633)
  br label %933

634:                                              ; preds = %43
  %635 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %636 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %637 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %636)
  %638 = uitofp i16 %637 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %635, double noundef %638)
  br label %933

639:                                              ; preds = %43
  %640 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %641 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %642 = call noundef zeroext i16 @_ZNK7glslang11TConstUnion11getU16ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %641)
  %643 = uitofp i16 %642 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %640, double noundef %643)
  br label %933

644:                                              ; preds = %43
  %645 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %646 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %647 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %646)
  %648 = trunc i32 %647 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %645, i8 noundef signext %648)
  br label %933

649:                                              ; preds = %43
  %650 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %651 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %652 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %651)
  %653 = trunc i32 %652 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %650, i16 noundef signext %653)
  br label %933

654:                                              ; preds = %43
  %655 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %656 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %657 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %656)
  %658 = sext i32 %657 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %655, i64 noundef %658)
  br label %933

659:                                              ; preds = %43
  %660 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %661 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %662 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %661)
  %663 = trunc i32 %662 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %660, i8 noundef zeroext %663)
  br label %933

664:                                              ; preds = %43
  %665 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %666 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %667 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %666)
  %668 = trunc i32 %667 to i16
  %669 = and i16 %668, 255
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %665, i16 noundef zeroext %669)
  br label %933

670:                                              ; preds = %43
  %671 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %672 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %673 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %672)
  %674 = sext i32 %673 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %671, i64 noundef %674)
  br label %933

675:                                              ; preds = %43
  %676 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %677 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %678 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %677)
  %679 = trunc i32 %678 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %676, i8 noundef signext %679)
  br label %933

680:                                              ; preds = %43
  %681 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %682 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %683 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %682)
  %684 = trunc i32 %683 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %681, i16 noundef signext %684)
  br label %933

685:                                              ; preds = %43
  %686 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %687 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %688 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %687)
  %689 = zext i32 %688 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %686, i64 noundef %689)
  br label %933

690:                                              ; preds = %43
  %691 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %692 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %693 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %692)
  %694 = trunc i32 %693 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %691, i8 noundef zeroext %694)
  br label %933

695:                                              ; preds = %43
  %696 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %697 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %698 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %697)
  %699 = trunc i32 %698 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %696, i16 noundef zeroext %699)
  br label %933

700:                                              ; preds = %43
  %701 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %702 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %703 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %702)
  %704 = zext i32 %703 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %701, i64 noundef %704)
  br label %933

705:                                              ; preds = %43
  %706 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %707 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %708 = call noundef i32 @_ZNK7glslang11TConstUnion9getIConstEv(ptr noundef nonnull align 8 dereferenceable(12) %707)
  %709 = sitofp i32 %708 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %706, double noundef %709)
  br label %933

710:                                              ; preds = %43
  %711 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %712 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %713 = call noundef i32 @_ZNK7glslang11TConstUnion9getUConstEv(ptr noundef nonnull align 8 dereferenceable(12) %712)
  %714 = uitofp i32 %713 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %711, double noundef %714)
  br label %933

715:                                              ; preds = %43
  %716 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %717 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %718 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %717)
  %719 = trunc i64 %718 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %716, i8 noundef signext %719)
  br label %933

720:                                              ; preds = %43
  %721 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %722 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %723 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %722)
  %724 = trunc i64 %723 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %721, i16 noundef signext %724)
  br label %933

725:                                              ; preds = %43
  %726 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %727 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %728 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %727)
  %729 = trunc i64 %728 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %726, i32 noundef %729)
  br label %933

730:                                              ; preds = %43
  %731 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %732 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %733 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %732)
  %734 = trunc i64 %733 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %731, i8 noundef zeroext %734)
  br label %933

735:                                              ; preds = %43
  %736 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %737 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %738 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %737)
  %739 = trunc i64 %738 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %736, i16 noundef zeroext %739)
  br label %933

740:                                              ; preds = %43
  %741 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %742 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %743 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %742)
  %744 = trunc i64 %743 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %741, i32 noundef %744)
  br label %933

745:                                              ; preds = %43
  %746 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %747 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %748 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %747)
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %746, i64 noundef %748)
  br label %933

749:                                              ; preds = %43
  %750 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %751 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %752 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %751)
  %753 = trunc i64 %752 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %750, i8 noundef signext %753)
  br label %933

754:                                              ; preds = %43
  %755 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %756 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %757 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %756)
  %758 = trunc i64 %757 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %755, i16 noundef signext %758)
  br label %933

759:                                              ; preds = %43
  %760 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %761 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %762 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %761)
  %763 = trunc i64 %762 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %760, i32 noundef %763)
  br label %933

764:                                              ; preds = %43
  %765 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %766 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %767 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %766)
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %765, i64 noundef %767)
  br label %933

768:                                              ; preds = %43
  %769 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %770 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %771 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %770)
  %772 = trunc i64 %771 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %769, i8 noundef zeroext %772)
  br label %933

773:                                              ; preds = %43
  %774 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %775 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %776 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %775)
  %777 = trunc i64 %776 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %774, i16 noundef zeroext %777)
  br label %933

778:                                              ; preds = %43
  %779 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %780 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %781 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %780)
  %782 = trunc i64 %781 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %779, i32 noundef %782)
  br label %933

783:                                              ; preds = %43
  %784 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %785 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %786 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %785)
  %787 = sitofp i64 %786 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %784, double noundef %787)
  br label %933

788:                                              ; preds = %43
  %789 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %790 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %791 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %790)
  %792 = sitofp i64 %791 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %789, double noundef %792)
  br label %933

793:                                              ; preds = %43
  %794 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %795 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %796 = call noundef i64 @_ZNK7glslang11TConstUnion11getI64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %795)
  %797 = sitofp i64 %796 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %794, double noundef %797)
  br label %933

798:                                              ; preds = %43
  %799 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %800 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %801 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %800)
  %802 = uitofp i64 %801 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %799, double noundef %802)
  br label %933

803:                                              ; preds = %43
  %804 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %805 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %806 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %805)
  %807 = uitofp i64 %806 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %804, double noundef %807)
  br label %933

808:                                              ; preds = %43
  %809 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %810 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %811 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %810)
  %812 = uitofp i64 %811 to double
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %809, double noundef %812)
  br label %933

813:                                              ; preds = %43
  %814 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %815 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %816 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %815)
  %817 = fptosi double %816 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %814, i8 noundef signext %817)
  br label %933

818:                                              ; preds = %43
  %819 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %820 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %821 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %820)
  %822 = fptosi double %821 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %819, i16 noundef signext %822)
  br label %933

823:                                              ; preds = %43
  %824 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %825 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %826 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %825)
  %827 = fptosi double %826 to i32
  call void @_ZN7glslang11TConstUnion9setIConstEi(ptr noundef nonnull align 8 dereferenceable(12) %824, i32 noundef %827)
  br label %933

828:                                              ; preds = %43
  %829 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %830 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %831 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %830)
  %832 = fptosi double %831 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %829, i64 noundef %832)
  br label %933

833:                                              ; preds = %43
  %834 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %835 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %836 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %835)
  %837 = fptoui double %836 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %834, i8 noundef zeroext %837)
  br label %933

838:                                              ; preds = %43
  %839 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %840 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %841 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %840)
  %842 = fptoui double %841 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %839, i16 noundef zeroext %842)
  br label %933

843:                                              ; preds = %43
  %844 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %845 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %846 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %845)
  %847 = fptoui double %846 to i32
  call void @_ZN7glslang11TConstUnion9setUConstEj(ptr noundef nonnull align 8 dereferenceable(12) %844, i32 noundef %847)
  br label %933

848:                                              ; preds = %43
  %849 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %850 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %851 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %850)
  %852 = fptoui double %851 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %849, i64 noundef %852)
  br label %933

853:                                              ; preds = %43
  %854 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %855 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %856 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %855)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %854, double noundef %856)
  br label %933

857:                                              ; preds = %43
  %858 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %859 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %860 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %859)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %858, double noundef %860)
  br label %933

861:                                              ; preds = %43
  %862 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %863 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %864 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %863)
  %865 = fptosi double %864 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %862, i8 noundef signext %865)
  br label %933

866:                                              ; preds = %43
  %867 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %868 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %869 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %868)
  %870 = fptosi double %869 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %867, i16 noundef signext %870)
  br label %933

871:                                              ; preds = %43
  %872 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %873 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %874 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %873)
  %875 = fptosi double %874 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %872, i64 noundef %875)
  br label %933

876:                                              ; preds = %43
  %877 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %878 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %879 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %878)
  %880 = fptoui double %879 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %877, i8 noundef zeroext %880)
  br label %933

881:                                              ; preds = %43
  %882 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %883 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %884 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %883)
  %885 = fptoui double %884 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %882, i16 noundef zeroext %885)
  br label %933

886:                                              ; preds = %43
  %887 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %888 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %889 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %888)
  %890 = fptoui double %889 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %887, i64 noundef %890)
  br label %933

891:                                              ; preds = %43
  %892 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %893 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %894 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %893)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %892, double noundef %894)
  br label %933

895:                                              ; preds = %43
  %896 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %897 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %898 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %897)
  %899 = fptosi double %898 to i8
  call void @_ZN7glslang11TConstUnion10setI8ConstEa(ptr noundef nonnull align 8 dereferenceable(12) %896, i8 noundef signext %899)
  br label %933

900:                                              ; preds = %43
  %901 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %902 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %903 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %902)
  %904 = fptosi double %903 to i16
  call void @_ZN7glslang11TConstUnion11setI16ConstEs(ptr noundef nonnull align 8 dereferenceable(12) %901, i16 noundef signext %904)
  br label %933

905:                                              ; preds = %43
  %906 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %907 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %908 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %907)
  %909 = fptosi double %908 to i64
  call void @_ZN7glslang11TConstUnion11setI64ConstEx(ptr noundef nonnull align 8 dereferenceable(12) %906, i64 noundef %909)
  br label %933

910:                                              ; preds = %43
  %911 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %912 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %913 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %912)
  %914 = fptoui double %913 to i8
  call void @_ZN7glslang11TConstUnion10setU8ConstEh(ptr noundef nonnull align 8 dereferenceable(12) %911, i8 noundef zeroext %914)
  br label %933

915:                                              ; preds = %43
  %916 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %917 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %918 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %917)
  %919 = fptoui double %918 to i16
  call void @_ZN7glslang11TConstUnion11setU16ConstEt(ptr noundef nonnull align 8 dereferenceable(12) %916, i16 noundef zeroext %919)
  br label %933

920:                                              ; preds = %43
  %921 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %922 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %923 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %922)
  %924 = fptoui double %923 to i64
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %921, i64 noundef %924)
  br label %933

925:                                              ; preds = %43
  %926 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %927 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %928 = call noundef double @_ZNK7glslang11TConstUnion9getDConstEv(ptr noundef nonnull align 8 dereferenceable(12) %927)
  call void @_ZN7glslang11TConstUnion9setDConstEd(ptr noundef nonnull align 8 dereferenceable(12) %926, double noundef %928)
  br label %933

929:                                              ; preds = %43
  %930 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %4, i64 noundef %indvars.iv635)
  %931 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZNK7glslang16TConstUnionArrayixEm(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %indvars.iv635)
  %932 = call noundef i64 @_ZNK7glslang11TConstUnion11getU64ConstEv(ptr noundef nonnull align 8 dereferenceable(12) %931)
  call void @_ZN7glslang11TConstUnion11setU64ConstEy(ptr noundef nonnull align 8 dereferenceable(12) %930, i64 noundef %932)
  br label %933

933:                                              ; preds = %119, %127, %131, %137, %143, %148, %153, %158, %163, %168, %173, %175, %180, %185, %190, %195, %200, %253, %269, %290, %293, %298, %309, %315, %316, %321, %326, %331, %336, %340, %344, %349, %354, %359, %364, %368, %373, %378, %383, %388, %393, %398, %403, %408, %413, %418, %423, %428, %433, %438, %443, %448, %453, %458, %463, %467, %472, %477, %482, %486, %491, %496, %501, %506, %511, %516, %521, %526, %531, %536, %541, %546, %551, %556, %561, %566, %570, %575, %580, %585, %589, %594, %599, %604, %609, %614, %619, %624, %629, %634, %639, %644, %649, %654, %659, %664, %670, %675, %680, %685, %690, %695, %700, %705, %710, %715, %720, %725, %730, %735, %740, %745, %749, %754, %759, %764, %768, %773, %778, %783, %788, %793, %798, %803, %808, %813, %818, %823, %828, %833, %838, %843, %848, %853, %857, %861, %866, %871, %876, %881, %886, %891, %895, %900, %905, %910, %915, %920, %925, %929, %103, %98, %93, %88, %83, %78, %73, %71, %57, %219, %224, %210, %251, %241, %267, %265
  %indvars.iv.next636 = add nuw nsw i64 %indvars.iv635, 1
  %.not597 = icmp ult i64 %indvars.iv.next636, %42
  br i1 %.not597, label %43, label %.critedge, !llvm.loop !18

.critedge:                                        ; preds = %933, %._crit_edge612.thread, %.preheader, %.loopexit598
  %934 = invoke noundef ptr @_ZN11TIntermNodenwEm(i64 noundef 200)
          to label %935 unwind label %958

935:                                              ; preds = %.critedge
  invoke void @_ZN7glslang20TIntermConstantUnionC2ERKNS_16TConstUnionArrayERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(193) %934, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(144) %2)
          to label %936 unwind label %960

936:                                              ; preds = %935
  %937 = load ptr, ptr %934, align 8, !tbaa !5
  %938 = getelementptr inbounds i8, ptr %937, i64 248
  %939 = load ptr, ptr %938, align 8
  %940 = invoke noundef nonnull align 8 dereferenceable(144) ptr %939(ptr noundef nonnull align 8 dereferenceable(176) %934)
          to label %941 unwind label %958

941:                                              ; preds = %936
  %942 = load ptr, ptr %940, align 8, !tbaa !5
  %943 = getelementptr inbounds i8, ptr %942, i64 80
  %944 = load ptr, ptr %943, align 8
  %945 = invoke noundef nonnull align 8 dereferenceable(72) ptr %944(ptr noundef nonnull align 8 dereferenceable(144) %940)
          to label %946 unwind label %958

946:                                              ; preds = %941
  %947 = getelementptr inbounds i8, ptr %945, i64 8
  %948 = load i64, ptr %947, align 8
  %949 = and i64 %948, -64
  %950 = or disjoint i64 %949, 2
  store i64 %950, ptr %947, align 8
  %951 = load ptr, ptr %0, align 8, !tbaa !5
  %952 = load ptr, ptr %951, align 8
  %953 = invoke noundef nonnull align 8 dereferenceable(24) ptr %952(ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %954 unwind label %958

954:                                              ; preds = %946
  %955 = load ptr, ptr %934, align 8, !tbaa !5
  %956 = getelementptr inbounds i8, ptr %955, i64 8
  %957 = load ptr, ptr %956, align 8
  invoke void %957(ptr noundef nonnull align 8 dereferenceable(32) %934, ptr noundef nonnull align 8 dereferenceable(24) %953)
          to label %.loopexit.split unwind label %958

958:                                              ; preds = %954, %946, %941, %936, %.critedge
  %959 = landingpad { ptr, i32 }
          cleanup
  br label %962

960:                                              ; preds = %935
  %961 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN11TIntermNodedlEPv(ptr noundef %934) #8
  br label %962

.loopexit.split:                                  ; preds = %118, %54, %.lr.ph620, %954, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13, %13
  %.1 = phi ptr [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ null, %13 ], [ %934, %954 ], [ null, %.lr.ph620 ], [ null, %54 ], [ null, %118 ]
  call void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  br label %963

962:                                              ; preds = %958, %960, %55, %129
  %.pn592.pn = phi { ptr, i32 } [ %56, %55 ], [ %130, %129 ], [ %959, %958 ], [ %961, %960 ]
  call void @_ZN7glslang16TConstUnionArrayD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  resume { ptr, i32 } %.pn592.pn

963:                                              ; preds = %3, %3, %.loopexit.split
  %.2 = phi ptr [ %.1, %.loopexit.split ], [ null, %3 ], [ null, %3 ]
  ret ptr %.2
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang11TConstUnion9getBConstEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZNK7glslang11TConstUnioncoEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @tan(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @asin(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @acos(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @atan(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @exp(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @exp2(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log2(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7glslang11TConstUnion7getTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang5IsNanEd(double noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang10IsInfinityEd(double noundef) local_unnamed_addr #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = distinct !{!8, !9}
!9 = !{!"llvm.loop.mustprogress"}
!10 = distinct !{!10, !9}
!11 = distinct !{!11, !9}
!12 = distinct !{!12, !9}
!13 = !{!14, !14, i64 0}
!14 = !{!"omnipotent char", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTSN7glslang10TBasicTypeE", !14, i64 0}
!17 = !{i64 0, i64 8, !13, i64 8, i64 4, !15}
!18 = distinct !{!18, !9}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass