; LLVM IR from modlfo/AudioEngine :: AudioEngine/JuceLibraryCode (juce_gui_basics)

; 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.juce::Colour" = type { %"class.juce::PixelARGB" }
%"class.juce::PixelARGB" = type { %union.anon.77 }
%union.anon.77 = type { i32 }
%"class.juce::Path" = type <{ %"class.juce::ArrayAllocationBase.123", i64, %"struct.juce::Path::PathBounds", i8, [7 x i8] }>
%"class.juce::ArrayAllocationBase.123" = type <{ %"class.juce::HeapBlock.124", i32, [4 x i8] }>
%"class.juce::HeapBlock.124" = type { ptr }
%"struct.juce::Path::PathBounds" = type { float, float, float, float }
%"class.juce::ColourGradient" = type { %"class.juce::Point.35", %"class.juce::Point.35", i8, [7 x i8], %"class.juce::Array.207" }
%"class.juce::Point.35" = type { float, float }
%"class.juce::Array.207" = type { %"class.juce::ArrayAllocationBase.208", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.208" = type <{ %"class.juce::HeapBlock.209", i32, [4 x i8] }>
%"class.juce::HeapBlock.209" = type { ptr }
%"class.juce::PathStrokeType" = type { float, i32, i32 }
%"class.juce::AffineTransform" = type { float, float, float, float, float, float }

@_ZN4juce7Colours16transparentBlackE = external global %"class.juce::Colour", align 1
@_ZN4juce7Colours16transparentWhiteE = external global %"class.juce::Colour", align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #0

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

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

; Function Attrs: nounwind
declare void @_ZN4juce15AffineTransformC1Ev(ptr noundef nonnull align 4 dereferenceable(24)) unnamed_addr #2

declare void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17)) #3

declare void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17)) #3

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

declare void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) #3

; Function Attrs: nounwind
declare void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4)) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(4)) unnamed_addr #2

declare void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41)) unnamed_addr #2

declare void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(41)) #3

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) #2

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) #2

declare void @_ZNK4juce8Graphics10strokePathERKNS_4PathERKNS_14PathStrokeTypeERKNS_15AffineTransformE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(41), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: nounwind
declare void @_ZN4juce14PathStrokeTypeC1Ef(ptr noundef nonnull align 4 dereferenceable(12), float noundef) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN4juce14PathStrokeTypeD1Ev(ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #2

declare noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48), double noundef, ptr noundef) #3

; Function Attrs: nounwind
declare void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef, float noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef, double noundef, double noundef) #5

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_ZN4juce14LookAndFeel_V216drawGlassLozengeERNS_8GraphicsEffffRKNS_6ColourEffbbbb(ptr noundef nonnull align 8 dereferenceable(17) %0, float noundef %1, float noundef %2, float noundef %3, float noundef %4, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef %6, float noundef %7, i1 noundef zeroext %8, i1 noundef zeroext %9, i1 noundef zeroext %10, i1 noundef zeroext %11) #5 align 2 personality ptr @__gxx_personality_v0 {
  %13 = alloca ptr, align 8
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca ptr, align 8
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca %"class.juce::Path", align 8
  %33 = alloca %"class.juce::ColourGradient", align 8
  %34 = alloca %"class.juce::Colour", align 1
  %35 = alloca %"class.juce::Colour", align 1
  %36 = alloca %"class.juce::Colour", align 1
  %37 = alloca %"class.juce::Colour", align 1
  %38 = alloca %"class.juce::Colour", align 1
  %39 = alloca %"class.juce::ColourGradient", align 8
  %40 = alloca %"class.juce::Colour", align 1
  %41 = alloca %"class.juce::Colour", align 1
  %42 = alloca %"class.juce::Colour", align 1
  %43 = alloca %"class.juce::Colour", align 1
  %44 = alloca %"class.juce::Colour", align 1
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca %"class.juce::Path", align 8
  %48 = alloca %"class.juce::ColourGradient", align 8
  %49 = alloca %"class.juce::Colour", align 1
  %50 = alloca %"class.juce::Colour", align 1
  %51 = alloca %"class.juce::Colour", align 1
  %52 = alloca %"class.juce::Colour", align 1
  %53 = alloca %"class.juce::PathStrokeType", align 4
  %54 = alloca %"class.juce::AffineTransform", align 4
  store ptr %0, ptr %13, align 8, !tbaa !5
  store float %1, ptr %14, align 4, !tbaa !9
  store float %2, ptr %15, align 4, !tbaa !9
  store float %3, ptr %16, align 4, !tbaa !9
  store float %4, ptr %17, align 4, !tbaa !9
  store ptr %5, ptr %18, align 8, !tbaa !5
  store float %6, ptr %19, align 4, !tbaa !9
  store float %7, ptr %20, align 4, !tbaa !9
  %55 = zext i1 %8 to i8
  store i8 %55, ptr %21, align 1, !tbaa !11
  %56 = zext i1 %9 to i8
  store i8 %56, ptr %22, align 1, !tbaa !11
  %57 = zext i1 %10 to i8
  store i8 %57, ptr %23, align 1, !tbaa !11
  %58 = zext i1 %11 to i8
  store i8 %58, ptr %24, align 1, !tbaa !11
  %59 = load float, ptr %16, align 4, !tbaa !9
  %60 = load float, ptr %19, align 4, !tbaa !9
  %61 = fcmp ole float %59, %60
  br i1 %61, label %66, label %62

62:                                               ; preds = %12
  %63 = load float, ptr %17, align 4, !tbaa !9
  %64 = load float, ptr %19, align 4, !tbaa !9
  %65 = fcmp ole float %63, %64
  br i1 %65, label %66, label %67

66:                                               ; preds = %62, %12
  br label %344

67:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %68 = load float, ptr %14, align 4, !tbaa !9
  %69 = fptosi float %68 to i32
  store i32 %69, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %70 = load float, ptr %15, align 4, !tbaa !9
  %71 = fptosi float %70 to i32
  store i32 %71, ptr %26, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %72 = load float, ptr %16, align 4, !tbaa !9
  %73 = fptosi float %72 to i32
  store i32 %73, ptr %27, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %74 = load float, ptr %17, align 4, !tbaa !9
  %75 = fptosi float %74 to i32
  store i32 %75, ptr %28, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %76 = load float, ptr %20, align 4, !tbaa !9
  %77 = fcmp olt float %76, 0.000000e+00
  br i1 %77, label %78, label %85

78:                                               ; preds = %67
  %79 = load float, ptr %16, align 4, !tbaa !9
  %80 = fmul float %79, 5.000000e-01
  %81 = load float, ptr %17, align 4, !tbaa !9
  %82 = fmul float %81, 5.000000e-01
  %83 = invoke noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef %80, float noundef %82)
          to label %84 unwind label %345

84:                                               ; preds = %78
  br label %87

85:                                               ; preds = %67
  %86 = load float, ptr %20, align 4, !tbaa !9
  br label %87

87:                                               ; preds = %85, %84
  %88 = phi float [ %83, %84 ], [ %86, %85 ]
  store float %88, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %89 = load float, ptr %17, align 4, !tbaa !9
  %90 = load float, ptr %17, align 4, !tbaa !9
  %91 = load float, ptr %29, align 4, !tbaa !9
  %92 = fneg float %91
  %93 = call float @llvm.fmuladd.f32(float %92, float 2.000000e+00, float %90)
  %94 = call float @llvm.fmuladd.f32(float %89, float 7.500000e-01, float %93)
  store float %94, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %95 = load float, ptr %30, align 4, !tbaa !9
  %96 = fptosi float %95 to i32
  store i32 %96, ptr %31, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 48, ptr %32) #7
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %97 unwind label %345

97:                                               ; preds = %87
  %98 = load float, ptr %14, align 4, !tbaa !9
  %99 = load float, ptr %15, align 4, !tbaa !9
  %100 = load float, ptr %16, align 4, !tbaa !9
  %101 = load float, ptr %17, align 4, !tbaa !9
  %102 = load float, ptr %29, align 4, !tbaa !9
  %103 = load float, ptr %29, align 4, !tbaa !9
  %104 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %105 = trunc i8 %104 to i1
  br i1 %105, label %109, label %106

106:                                              ; preds = %97
  %107 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %108 = trunc i8 %107 to i1
  br label %109

109:                                              ; preds = %106, %97
  %110 = phi i1 [ true, %97 ], [ %108, %106 ]
  %111 = xor i1 %110, true
  %112 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %113 = trunc i8 %112 to i1
  br i1 %113, label %117, label %114

114:                                              ; preds = %109
  %115 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %116 = trunc i8 %115 to i1
  br label %117

117:                                              ; preds = %114, %109
  %118 = phi i1 [ true, %109 ], [ %116, %114 ]
  %119 = xor i1 %118, true
  %120 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %121 = trunc i8 %120 to i1
  br i1 %121, label %125, label %122

122:                                              ; preds = %117
  %123 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %124 = trunc i8 %123 to i1
  br label %125

125:                                              ; preds = %122, %117
  %126 = phi i1 [ true, %117 ], [ %124, %122 ]
  %127 = xor i1 %126, true
  %128 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %129 = trunc i8 %128 to i1
  br i1 %129, label %133, label %130

130:                                              ; preds = %125
  %131 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %132 = trunc i8 %131 to i1
  br label %133

133:                                              ; preds = %130, %125
  %134 = phi i1 [ true, %125 ], [ %132, %130 ]
  %135 = xor i1 %134, true
  invoke void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41) %32, float noundef %98, float noundef %99, float noundef %100, float noundef %101, float noundef %102, float noundef %103, i1 noundef zeroext %111, i1 noundef zeroext %119, i1 noundef zeroext %127, i1 noundef zeroext %135)
          to label %136 unwind label %345

136:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 48, ptr %33) #7
  %137 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %34, ptr noundef nonnull align 1 dereferenceable(4) %137, float noundef 0x3FC99999A0000000) #7
  %138 = load float, ptr %15, align 4, !tbaa !9
  %139 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %35, ptr noundef nonnull align 1 dereferenceable(4) %139, float noundef 0x3FC99999A0000000) #7
  %140 = load float, ptr %15, align 4, !tbaa !9
  %141 = load float, ptr %17, align 4, !tbaa !9
  %142 = fadd float %140, %141
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef %34, float noundef 0.000000e+00, float noundef %138, ptr noundef %35, float noundef 0.000000e+00, float noundef %142, i1 noundef zeroext false)
          to label %143 unwind label %345

143:                                              ; preds = %136
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %35) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %34) #7
  %144 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %36, ptr noundef nonnull align 1 dereferenceable(4) %144, float noundef 0x3FD3333340000000) #7
  %145 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %33, double noundef 3.000000e-02, ptr noundef %36)
          to label %146 unwind label %345

146:                                              ; preds = %143
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %36) #7
  %147 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %37, ptr noundef nonnull align 1 dereferenceable(4) %147) #7
  %148 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %33, double noundef 4.000000e-01, ptr noundef %37)
          to label %149 unwind label %345

149:                                              ; preds = %146
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %37) #7
  %150 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %38, ptr noundef nonnull align 1 dereferenceable(4) %150, float noundef 0x3FD3333340000000) #7
  %151 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %33, double noundef 0x3FEF0A3D70A3D70A, ptr noundef %38)
          to label %152 unwind label %345

152:                                              ; preds = %149
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %38) #7
  %153 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %153, ptr noundef nonnull align 8 dereferenceable(48) %33)
          to label %154 unwind label %345

154:                                              ; preds = %152
  %155 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %155, ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %156 unwind label %345

156:                                              ; preds = %154
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %39) #7
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %40, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentBlackE) #7
  %157 = load float, ptr %14, align 4, !tbaa !9
  %158 = load float, ptr %30, align 4, !tbaa !9
  %159 = fadd float %157, %158
  %160 = load float, ptr %15, align 4, !tbaa !9
  %161 = load float, ptr %17, align 4, !tbaa !9
  %162 = call float @llvm.fmuladd.f32(float %161, float 5.000000e-01, float %160)
  %163 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %41, ptr noundef nonnull align 1 dereferenceable(4) %163, float noundef 0x3FC99999A0000000) #7
  %164 = load float, ptr %14, align 4, !tbaa !9
  %165 = load float, ptr %15, align 4, !tbaa !9
  %166 = load float, ptr %17, align 4, !tbaa !9
  %167 = call float @llvm.fmuladd.f32(float %166, float 5.000000e-01, float %165)
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef %40, float noundef %159, float noundef %162, ptr noundef %41, float noundef %164, float noundef %167, i1 noundef zeroext true)
          to label %168 unwind label %345

168:                                              ; preds = %156
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %41) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %40) #7
  %169 = load float, ptr %29, align 4, !tbaa !9
  %170 = fmul float %169, 5.000000e-01
  %171 = load float, ptr %30, align 4, !tbaa !9
  %172 = fdiv float %170, %171
  %173 = fpext float %172 to double
  %174 = fsub double 1.000000e+00, %173
  %175 = call noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %174) #7
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %42, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentBlackE) #7
  %176 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %39, double noundef %175, ptr noundef %42)
          to label %177 unwind label %345

177:                                              ; preds = %168
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %42) #7
  %178 = load float, ptr %29, align 4, !tbaa !9
  %179 = fmul float %178, 2.500000e-01
  %180 = load float, ptr %30, align 4, !tbaa !9
  %181 = fdiv float %179, %180
  %182 = fpext float %181 to double
  %183 = fsub double 1.000000e+00, %182
  %184 = call noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %183) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %185 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %44, ptr noundef nonnull align 1 dereferenceable(4) %185, float noundef 0x3FC99999A0000000) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %43, ptr noundef nonnull align 1 dereferenceable(4) %44, float noundef 0x3FD3333340000000) #7
  %186 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %39, double noundef %184, ptr noundef %43)
          to label %187 unwind label %345

187:                                              ; preds = %177
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %43) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  %188 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %189 = trunc i8 %188 to i1
  br i1 %189, label %212, label %190

190:                                              ; preds = %187
  %191 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %192 = trunc i8 %191 to i1
  br i1 %192, label %212, label %193

193:                                              ; preds = %190
  %194 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %195 = trunc i8 %194 to i1
  br i1 %195, label %212, label %196

196:                                              ; preds = %193
  %197 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17) %197)
          to label %198 unwind label %345

198:                                              ; preds = %196
  %199 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %199, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %200 unwind label %345

200:                                              ; preds = %198
  %201 = load ptr, ptr %13, align 8, !tbaa !5
  %202 = load i32, ptr %25, align 4, !tbaa !13
  %203 = load i32, ptr %26, align 4, !tbaa !13
  %204 = load i32, ptr %31, align 4, !tbaa !13
  %205 = load i32, ptr %28, align 4, !tbaa !13
  %206 = invoke noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17) %201, i32 noundef %202, i32 noundef %203, i32 noundef %204, i32 noundef %205)
          to label %207 unwind label %345

207:                                              ; preds = %200
  %208 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %208, ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %209 unwind label %345

209:                                              ; preds = %207
  %210 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17) %210)
          to label %211 unwind label %345

211:                                              ; preds = %209
  br label %212

212:                                              ; preds = %211, %193, %190, %187
  %213 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %214 = trunc i8 %213 to i1
  br i1 %214, label %252, label %215

215:                                              ; preds = %212
  %216 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %217 = trunc i8 %216 to i1
  br i1 %217, label %252, label %218

218:                                              ; preds = %215
  %219 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %220 = trunc i8 %219 to i1
  br i1 %220, label %252, label %221

221:                                              ; preds = %218
  %222 = getelementptr inbounds %"class.juce::ColourGradient", ptr %39, i32 0, i32 0
  %223 = load float, ptr %14, align 4, !tbaa !9
  %224 = load float, ptr %16, align 4, !tbaa !9
  %225 = fadd float %223, %224
  %226 = load float, ptr %30, align 4, !tbaa !9
  %227 = fsub float %225, %226
  call void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8) %222, float noundef %227) #7
  %228 = getelementptr inbounds %"class.juce::ColourGradient", ptr %39, i32 0, i32 1
  %229 = load float, ptr %14, align 4, !tbaa !9
  %230 = load float, ptr %16, align 4, !tbaa !9
  %231 = fadd float %229, %230
  call void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8) %228, float noundef %231) #7
  %232 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17) %232)
          to label %233 unwind label %345

233:                                              ; preds = %221
  %234 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %234, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %235 unwind label %345

235:                                              ; preds = %233
  %236 = load ptr, ptr %13, align 8, !tbaa !5
  %237 = load i32, ptr %25, align 4, !tbaa !13
  %238 = load i32, ptr %27, align 4, !tbaa !13
  %239 = add nsw i32 %237, %238
  %240 = load i32, ptr %31, align 4, !tbaa !13
  %241 = sub nsw i32 %239, %240
  %242 = load i32, ptr %26, align 4, !tbaa !13
  %243 = load i32, ptr %31, align 4, !tbaa !13
  %244 = add nsw i32 2, %243
  %245 = load i32, ptr %28, align 4, !tbaa !13
  %246 = invoke noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17) %236, i32 noundef %241, i32 noundef %242, i32 noundef %244, i32 noundef %245)
          to label %247 unwind label %345

247:                                              ; preds = %235
  %248 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %248, ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %249 unwind label %345

249:                                              ; preds = %247
  %250 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17) %250)
          to label %251 unwind label %345

251:                                              ; preds = %249
  br label %252

252:                                              ; preds = %251, %218, %215, %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %253 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %254 = trunc i8 %253 to i1
  br i1 %254, label %258, label %255

255:                                              ; preds = %252
  %256 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %257 = trunc i8 %256 to i1
  br i1 %257, label %258, label %259

258:                                              ; preds = %255, %252
  br label %262

259:                                              ; preds = %255
  %260 = load float, ptr %29, align 4, !tbaa !9
  %261 = fmul float %260, 0x3FD99999A0000000
  br label %262

262:                                              ; preds = %259, %258
  %263 = phi float [ 0.000000e+00, %258 ], [ %261, %259 ]
  store float %263, ptr %45, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %264 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %265 = trunc i8 %264 to i1
  br i1 %265, label %269, label %266

266:                                              ; preds = %262
  %267 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %268 = trunc i8 %267 to i1
  br i1 %268, label %269, label %270

269:                                              ; preds = %266, %262
  br label %273

270:                                              ; preds = %266
  %271 = load float, ptr %29, align 4, !tbaa !9
  %272 = fmul float %271, 0x3FD99999A0000000
  br label %273

273:                                              ; preds = %270, %269
  %274 = phi float [ 0.000000e+00, %269 ], [ %272, %270 ]
  store float %274, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %47) #7
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %47)
          to label %275 unwind label %345

275:                                              ; preds = %273
  %276 = load float, ptr %14, align 4, !tbaa !9
  %277 = load float, ptr %45, align 4, !tbaa !9
  %278 = fadd float %276, %277
  %279 = load float, ptr %15, align 4, !tbaa !9
  %280 = load float, ptr %29, align 4, !tbaa !9
  %281 = call float @llvm.fmuladd.f32(float %280, float 0x3FB99999A0000000, float %279)
  %282 = load float, ptr %16, align 4, !tbaa !9
  %283 = load float, ptr %45, align 4, !tbaa !9
  %284 = load float, ptr %46, align 4, !tbaa !9
  %285 = fadd float %283, %284
  %286 = fsub float %282, %285
  %287 = load float, ptr %17, align 4, !tbaa !9
  %288 = fmul float %287, 0x3FD99999A0000000
  %289 = load float, ptr %29, align 4, !tbaa !9
  %290 = fmul float %289, 0x3FD99999A0000000
  %291 = load float, ptr %29, align 4, !tbaa !9
  %292 = fmul float %291, 0x3FD99999A0000000
  %293 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %294 = trunc i8 %293 to i1
  br i1 %294, label %298, label %295

295:                                              ; preds = %275
  %296 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %297 = trunc i8 %296 to i1
  br label %298

298:                                              ; preds = %295, %275
  %299 = phi i1 [ true, %275 ], [ %297, %295 ]
  %300 = xor i1 %299, true
  %301 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %302 = trunc i8 %301 to i1
  br i1 %302, label %306, label %303

303:                                              ; preds = %298
  %304 = load i8, ptr %23, align 1, !tbaa !11, !range !15, !noundef !16
  %305 = trunc i8 %304 to i1
  br label %306

306:                                              ; preds = %303, %298
  %307 = phi i1 [ true, %298 ], [ %305, %303 ]
  %308 = xor i1 %307, true
  %309 = load i8, ptr %21, align 1, !tbaa !11, !range !15, !noundef !16
  %310 = trunc i8 %309 to i1
  br i1 %310, label %314, label %311

311:                                              ; preds = %306
  %312 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %313 = trunc i8 %312 to i1
  br label %314

314:                                              ; preds = %311, %306
  %315 = phi i1 [ true, %306 ], [ %313, %311 ]
  %316 = xor i1 %315, true
  %317 = load i8, ptr %22, align 1, !tbaa !11, !range !15, !noundef !16
  %318 = trunc i8 %317 to i1
  br i1 %318, label %322, label %319

319:                                              ; preds = %314
  %320 = load i8, ptr %24, align 1, !tbaa !11, !range !15, !noundef !16
  %321 = trunc i8 %320 to i1
  br label %322

322:                                              ; preds = %319, %314
  %323 = phi i1 [ true, %314 ], [ %321, %319 ]
  %324 = xor i1 %323, true
  invoke void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41) %47, float noundef %278, float noundef %281, float noundef %286, float noundef %288, float noundef %290, float noundef %292, i1 noundef zeroext %300, i1 noundef zeroext %308, i1 noundef zeroext %316, i1 noundef zeroext %324)
          to label %325 unwind label %345

325:                                              ; preds = %322
  %326 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %48) #7
  %327 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour8brighterEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %49, ptr noundef nonnull align 1 dereferenceable(4) %327, float noundef 1.000000e+01) #7
  %328 = load float, ptr %15, align 4, !tbaa !9
  %329 = load float, ptr %17, align 4, !tbaa !9
  %330 = call float @llvm.fmuladd.f32(float %329, float 0x3FAEB851E0000000, float %328)
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %50, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentWhiteE) #7
  %331 = load float, ptr %15, align 4, !tbaa !9
  %332 = load float, ptr %17, align 4, !tbaa !9
  %333 = call float @llvm.fmuladd.f32(float %332, float 0x3FD99999A0000000, float %331)
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %48, ptr noundef %49, float noundef 0.000000e+00, float noundef %330, ptr noundef %50, float noundef 0.000000e+00, float noundef %333, i1 noundef zeroext false)
          to label %334 unwind label %345

334:                                              ; preds = %325
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %326, ptr noundef nonnull align 8 dereferenceable(48) %48)
          to label %335 unwind label %345

335:                                              ; preds = %334
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %50) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %49) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #7
  %336 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %336, ptr noundef nonnull align 8 dereferenceable(41) %47)
          to label %337 unwind label %345

337:                                              ; preds = %335
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %47) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  %338 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  %339 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %52, ptr noundef nonnull align 1 dereferenceable(4) %339, float noundef 0x3FD99999A0000000) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %51, ptr noundef nonnull align 1 dereferenceable(4) %52, float noundef 1.500000e+00) #7
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %338, ptr noundef %51)
          to label %340 unwind label %345

340:                                              ; preds = %337
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %51) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  %341 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12, ptr %53) #7
  %342 = load float, ptr %19, align 4, !tbaa !9
  call void @_ZN4juce14PathStrokeTypeC1Ef(ptr noundef nonnull align 4 dereferenceable(12) %53, float noundef %342) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #7
  call void @_ZN4juce15AffineTransformC1Ev(ptr noundef nonnull align 4 dereferenceable(24) %54) #7
  invoke void @_ZNK4juce8Graphics10strokePathERKNS_4PathERKNS_14PathStrokeTypeERKNS_15AffineTransformE(ptr noundef nonnull align 8 dereferenceable(17) %341, ptr noundef nonnull align 8 dereferenceable(41) %32, ptr noundef nonnull align 4 dereferenceable(12) %53, ptr noundef nonnull align 4 dereferenceable(24) %54)
          to label %343 unwind label %345

343:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  call void @_ZN4juce14PathStrokeTypeD1Ev(ptr noundef nonnull align 4 dereferenceable(12) %53) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr %53) #7
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #7
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %32) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %344

344:                                              ; preds = %343, %66
  ret void

345:                                              ; preds = %340, %337, %335, %334, %325, %322, %273, %249, %247, %235, %233, %221, %209, %207, %200, %198, %196, %177, %168, %156, %154, %152, %149, %146, %143, %136, %133, %87, %78
  %346 = landingpad { ptr, i32 }
          catch ptr null
  %347 = extractvalue { ptr, i32 } %346, 0
  call void @__clang_call_terminate(ptr %347) #8
  unreachable
}

declare void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(48)) #3

declare void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, float noundef, float noundef, ptr noundef, float noundef, float noundef, i1 noundef zeroext) unnamed_addr #3

declare noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

declare void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8), float noundef) #6 align 2

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour8brighterEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) #2

attributes #0 = { noinline noreturn nounwind uwtable "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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { 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 = !{!"float", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}


; 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.juce::Colour" = type { %"class.juce::PixelARGB" }
%"class.juce::PixelARGB" = type { %union.anon.77 }
%union.anon.77 = type { i32 }
%"class.juce::Path" = type <{ %"class.juce::ArrayAllocationBase.123", i64, %"struct.juce::Path::PathBounds", i8, [7 x i8] }>
%"class.juce::ArrayAllocationBase.123" = type <{ %"class.juce::HeapBlock.124", i32, [4 x i8] }>
%"class.juce::HeapBlock.124" = type { ptr }
%"struct.juce::Path::PathBounds" = type { float, float, float, float }
%"class.juce::ColourGradient" = type { %"class.juce::Point.35", %"class.juce::Point.35", i8, [7 x i8], %"class.juce::Array.207" }
%"class.juce::Point.35" = type { float, float }
%"class.juce::Array.207" = type { %"class.juce::ArrayAllocationBase.208", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.208" = type <{ %"class.juce::HeapBlock.209", i32, [4 x i8] }>
%"class.juce::HeapBlock.209" = type { ptr }
%"class.juce::PathStrokeType" = type { float, i32, i32 }
%"class.juce::AffineTransform" = type { float, float, float, float, float, float }

@_ZN4juce7Colours16transparentBlackE = external global %"class.juce::Colour", align 1
@_ZN4juce7Colours16transparentWhiteE = external global %"class.juce::Colour", align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #0

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

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

; Function Attrs: nounwind
declare void @_ZN4juce15AffineTransformC1Ev(ptr noundef nonnull align 4 dereferenceable(24)) unnamed_addr #2

declare void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

declare void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #3

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

declare void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4)) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(4)) unnamed_addr #2

declare void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41)) unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41)) unnamed_addr #2

declare void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(41)) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) local_unnamed_addr #2

declare void @_ZNK4juce8Graphics10strokePathERKNS_4PathERKNS_14PathStrokeTypeERKNS_15AffineTransformE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(41), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce14PathStrokeTypeC1Ef(ptr noundef nonnull align 4 dereferenceable(12), float noundef) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN4juce14PathStrokeTypeD1Ev(ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #2

declare noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48), double noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef, float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef, double noundef, double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_ZN4juce14LookAndFeel_V216drawGlassLozengeERNS_8GraphicsEffffRKNS_6ColourEffbbbb(ptr noundef nonnull align 8 dereferenceable(17) %0, float noundef %1, float noundef %2, float noundef %3, float noundef %4, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef %6, float noundef %7, i1 noundef zeroext %8, i1 noundef zeroext %9, i1 noundef zeroext %10, i1 noundef zeroext %11) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %13 = alloca %"class.juce::Path", align 8
  %14 = alloca %"class.juce::ColourGradient", align 8
  %15 = alloca %"class.juce::Colour", align 1
  %16 = alloca %"class.juce::Colour", align 1
  %17 = alloca %"class.juce::Colour", align 1
  %18 = alloca %"class.juce::Colour", align 1
  %19 = alloca %"class.juce::Colour", align 1
  %20 = alloca %"class.juce::ColourGradient", align 8
  %21 = alloca %"class.juce::Colour", align 1
  %22 = alloca %"class.juce::Colour", align 1
  %23 = alloca %"class.juce::Colour", align 1
  %24 = alloca %"class.juce::Colour", align 1
  %25 = alloca %"class.juce::Colour", align 1
  %26 = alloca %"class.juce::Path", align 8
  %27 = alloca %"class.juce::ColourGradient", align 8
  %28 = alloca %"class.juce::Colour", align 1
  %29 = alloca %"class.juce::Colour", align 1
  %30 = alloca %"class.juce::Colour", align 1
  %31 = alloca %"class.juce::Colour", align 1
  %32 = alloca %"class.juce::PathStrokeType", align 4
  %33 = alloca %"class.juce::AffineTransform", align 4
  %34 = fcmp ugt float %3, %6
  %35 = fcmp ugt float %4, %6
  %or.cond = and i1 %34, %35
  br i1 %or.cond, label %36, label %126

36:                                               ; preds = %12
  %37 = fptosi float %1 to i32
  %38 = fptosi float %2 to i32
  %39 = fptosi float %3 to i32
  %40 = fptosi float %4 to i32
  %41 = fcmp olt float %7, 0.000000e+00
  br i1 %41, label %42, label %46

42:                                               ; preds = %36
  %43 = fmul float %3, 5.000000e-01
  %44 = fmul float %4, 5.000000e-01
  %45 = tail call noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef %43, float noundef %44)
  br label %46

46:                                               ; preds = %36, %42
  %47 = phi float [ %45, %42 ], [ %7, %36 ]
  %48 = fneg float %47
  %49 = tail call float @llvm.fmuladd.f32(float %48, float 2.000000e+00, float %4)
  %50 = tail call float @llvm.fmuladd.f32(float %4, float 7.500000e-01, float %49)
  %51 = fptosi float %50 to i32
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #7
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %13)
          to label %52 unwind label %127

52:                                               ; preds = %46
  %53 = or i1 %8, %10
  %54 = xor i1 %53, true
  %55 = or i1 %9, %10
  %56 = xor i1 %55, true
  %57 = or i1 %8, %11
  %58 = xor i1 %57, true
  %59 = or i1 %9, %11
  %60 = xor i1 %59, true
  invoke void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41) %13, float noundef %1, float noundef %2, float noundef %3, float noundef %4, float noundef %47, float noundef %47, i1 noundef zeroext %54, i1 noundef zeroext %56, i1 noundef zeroext %58, i1 noundef zeroext %60)
          to label %61 unwind label %127

61:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #7
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %15, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FC99999A0000000) #7
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %16, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FC99999A0000000) #7
  %62 = fadd float %2, %4
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull %15, float noundef 0.000000e+00, float noundef %2, ptr noundef nonnull %16, float noundef 0.000000e+00, float noundef %62, i1 noundef zeroext false)
          to label %63 unwind label %127

63:                                               ; preds = %61
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %16) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %15) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %17, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FD3333340000000) #7
  %64 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %14, double noundef 3.000000e-02, ptr noundef nonnull %17)
          to label %65 unwind label %127

65:                                               ; preds = %63
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %17) #7
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %18, ptr noundef nonnull align 1 dereferenceable(4) %5) #7
  %66 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %14, double noundef 4.000000e-01, ptr noundef nonnull %18)
          to label %67 unwind label %127

67:                                               ; preds = %65
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %18) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %19, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FD3333340000000) #7
  %68 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %14, double noundef 0x3FEF0A3D70A3D70A, ptr noundef nonnull %19)
          to label %69 unwind label %127

69:                                               ; preds = %67
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %19) #7
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(48) %14)
          to label %70 unwind label %127

70:                                               ; preds = %69
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(41) %13)
          to label %71 unwind label %127

71:                                               ; preds = %70
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #7
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %21, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentBlackE) #7
  %72 = fadd float %50, %1
  %73 = call float @llvm.fmuladd.f32(float %4, float 5.000000e-01, float %2)
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %22, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FC99999A0000000) #7
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull %21, float noundef %72, float noundef %73, ptr noundef nonnull %22, float noundef %1, float noundef %73, i1 noundef zeroext true)
          to label %74 unwind label %127

74:                                               ; preds = %71
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %22) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %21) #7
  %75 = fmul float %47, 5.000000e-01
  %76 = fdiv float %75, %50
  %77 = fpext float %76 to double
  %78 = fsub double 1.000000e+00, %77
  %79 = call noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %78) #7
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %23, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentBlackE) #7
  %80 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %20, double noundef %79, ptr noundef nonnull %23)
          to label %81 unwind label %127

81:                                               ; preds = %74
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %23) #7
  %82 = fmul float %47, 2.500000e-01
  %83 = fdiv float %82, %50
  %84 = fpext float %83 to double
  %85 = fsub double 1.000000e+00, %84
  %86 = call noundef double @_ZN4juce6jlimitIdEET_S1_S1_S1_(double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef %85) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %25, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FC99999A0000000) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %24, ptr noundef nonnull align 1 dereferenceable(4) %25, float noundef 0x3FD3333340000000) #7
  %87 = invoke noundef i32 @_ZN4juce14ColourGradient9addColourEdNS_6ColourE(ptr noundef nonnull align 8 dereferenceable(48) %20, double noundef %86, ptr noundef nonnull %24)
          to label %88 unwind label %127

88:                                               ; preds = %81
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  %brmerge121 = or i1 %53, %11
  br i1 %brmerge121, label %95, label %89

89:                                               ; preds = %88
  invoke void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17) %0)
          to label %90 unwind label %127

90:                                               ; preds = %89
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(48) %20)
          to label %91 unwind label %127

91:                                               ; preds = %90
  %92 = invoke noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17) %0, i32 noundef %37, i32 noundef %38, i32 noundef %51, i32 noundef %40)
          to label %93 unwind label %127

93:                                               ; preds = %91
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(41) %13)
          to label %94 unwind label %127

94:                                               ; preds = %93
  invoke void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17) %0)
          to label %95 unwind label %127

95:                                               ; preds = %88, %94
  %brmerge123 = or i1 %55, %11
  br i1 %brmerge123, label %108, label %96

96:                                               ; preds = %95
  %97 = fadd float %1, %3
  %98 = fsub float %97, %50
  call void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %98) #7
  %99 = getelementptr inbounds i8, ptr %20, i64 8
  call void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8) %99, float noundef %97) #7
  invoke void @_ZN4juce8Graphics9saveStateEv(ptr noundef nonnull align 8 dereferenceable(17) %0)
          to label %100 unwind label %127

100:                                              ; preds = %96
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(48) %20)
          to label %101 unwind label %127

101:                                              ; preds = %100
  %102 = add nsw i32 %39, %37
  %103 = sub i32 %102, %51
  %104 = add nsw i32 %51, 2
  %105 = invoke noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17) %0, i32 noundef %103, i32 noundef %38, i32 noundef %104, i32 noundef %40)
          to label %106 unwind label %127

106:                                              ; preds = %101
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(41) %13)
          to label %107 unwind label %127

107:                                              ; preds = %106
  invoke void @_ZN4juce8Graphics12restoreStateEv(ptr noundef nonnull align 8 dereferenceable(17) %0)
          to label %108 unwind label %127

108:                                              ; preds = %95, %107
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %26) #7
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %26)
          to label %109 unwind label %127

109:                                              ; preds = %108
  %110 = fmul float %47, 0x3FD99999A0000000
  %111 = select i1 %55, float 0.000000e+00, float %110
  %112 = select i1 %53, float 0.000000e+00, float %110
  %113 = fadd float %112, %1
  %114 = call float @llvm.fmuladd.f32(float %47, float 0x3FB99999A0000000, float %2)
  %115 = fadd float %112, %111
  %116 = fsub float %3, %115
  %117 = fmul float %4, 0x3FD99999A0000000
  invoke void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41) %26, float noundef %113, float noundef %114, float noundef %116, float noundef %117, float noundef %110, float noundef %110, i1 noundef zeroext %54, i1 noundef zeroext %56, i1 noundef zeroext %58, i1 noundef zeroext %60)
          to label %118 unwind label %127

118:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %27) #7
  call void @_ZNK4juce6Colour8brighterEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %28, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 1.000000e+01) #7
  %119 = call float @llvm.fmuladd.f32(float %4, float 0x3FAEB851E0000000, float %2)
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %29, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentWhiteE) #7
  %120 = call float @llvm.fmuladd.f32(float %4, float 0x3FD99999A0000000, float %2)
  invoke void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull %28, float noundef 0.000000e+00, float noundef %119, ptr noundef nonnull %29, float noundef 0.000000e+00, float noundef %120, i1 noundef zeroext false)
          to label %121 unwind label %127

121:                                              ; preds = %118
  invoke void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(48) %27)
          to label %122 unwind label %127

122:                                              ; preds = %121
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %29) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %28) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %27) #7
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(41) %26)
          to label %123 unwind label %127

123:                                              ; preds = %122
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  call void @_ZNK4juce6Colour6darkerEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %31, ptr noundef nonnull align 1 dereferenceable(4) %5, float noundef 0x3FD99999A0000000) #7
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %30, ptr noundef nonnull align 1 dereferenceable(4) %31, float noundef 1.500000e+00) #7
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull %30)
          to label %124 unwind label %127

124:                                              ; preds = %123
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %30) #7
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %32) #7
  call void @_ZN4juce14PathStrokeTypeC1Ef(ptr noundef nonnull align 4 dereferenceable(12) %32, float noundef %6) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #7
  call void @_ZN4juce15AffineTransformC1Ev(ptr noundef nonnull align 4 dereferenceable(24) %33) #7
  invoke void @_ZNK4juce8Graphics10strokePathERKNS_4PathERKNS_14PathStrokeTypeERKNS_15AffineTransformE(ptr noundef nonnull align 8 dereferenceable(17) %0, ptr noundef nonnull align 8 dereferenceable(41) %13, ptr noundef nonnull align 4 dereferenceable(12) %32, ptr noundef nonnull align 4 dereferenceable(24) %33)
          to label %125 unwind label %127

125:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @_ZN4juce14PathStrokeTypeD1Ev(ptr noundef nonnull align 4 dereferenceable(12) %32) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %32) #7
  call void @_ZN4juce14ColourGradientD1Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %13) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #7
  br label %126

126:                                              ; preds = %12, %125
  ret void

127:                                              ; preds = %124, %123, %122, %121, %118, %109, %108, %107, %106, %101, %100, %96, %94, %93, %91, %90, %89, %81, %74, %71, %70, %69, %67, %65, %63, %61, %52, %46
  %128 = landingpad { ptr, i32 }
          catch ptr null
  %129 = extractvalue { ptr, i32 } %128, 0
  call void @__clang_call_terminate(ptr %129) #8
  unreachable
}

declare void @_ZN4juce8Graphics15setGradientFillERKNS_14ColourGradientE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

declare void @_ZN4juce14ColourGradientC1ENS_6ColourEffS1_ffb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, float noundef, float noundef, ptr noundef, float noundef, float noundef, i1 noundef zeroext) unnamed_addr #3

declare noundef zeroext i1 @_ZN4juce8Graphics16reduceClipRegionEiiii(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

declare void @_ZN4juce4Path19addRoundedRectangleEffffffbbbb(ptr noundef nonnull align 8 dereferenceable(41), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4juce5PointIfE4setXEf(ptr noundef nonnull align 4 dereferenceable(8), float noundef) local_unnamed_addr #6 align 2

; Function Attrs: nounwind
declare void @_ZNK4juce6Colour8brighterEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 1 dereferenceable(4), float noundef) local_unnamed_addr #2

attributes #0 = { noinline noreturn nounwind uwtable "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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { inlinehint 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 #7 = { nounwind }
attributes #8 = { 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)"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass