; 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 }

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind noalias writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197)) #1 align 2

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

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

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

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

declare void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) #4

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

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

; 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) #5

declare void @_ZNK4juce8Graphics7fillAllENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN4juce18LookAndFeelHelpersL16createBaseColourENS_6ColourEbbb(ptr dead_on_unwind noalias writable sret(%"class.juce::Colour") align 1, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) #1

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

declare void @_ZNK4juce8Graphics8drawRectEiiiii(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce14LookAndFeel_V212drawComboBoxERNS_8GraphicsEiibiiiiRNS_8ComboBoxE(ptr noundef nonnull align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %2, i32 noundef %3, i1 noundef zeroext %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, ptr noundef nonnull align 8 dereferenceable(380) %9) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca %"class.juce::Colour", align 1
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.juce::Colour", align 1
  %25 = alloca %"class.juce::Colour", align 1
  %26 = alloca float, align 4
  %27 = alloca %"class.juce::Colour", align 1
  %28 = alloca %"class.juce::Colour", align 1
  %29 = alloca %"class.juce::Colour", align 1
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca %"class.juce::Path", align 8
  %33 = alloca %"class.juce::Colour", align 1
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store i32 %2, ptr %13, align 4, !tbaa !9
  store i32 %3, ptr %14, align 4, !tbaa !9
  %34 = zext i1 %4 to i8
  store i8 %34, ptr %15, align 1, !tbaa !11
  store i32 %5, ptr %16, align 4, !tbaa !9
  store i32 %6, ptr %17, align 4, !tbaa !9
  store i32 %7, ptr %18, align 4, !tbaa !9
  store i32 %8, ptr %19, align 4, !tbaa !9
  store ptr %9, ptr %20, align 8, !tbaa !5
  %35 = load ptr, ptr %11, align 8
  %36 = load ptr, ptr %12, align 8, !tbaa !5
  %37 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %21, ptr noundef nonnull align 8 dereferenceable(197) %37, i32 noundef 16780032, i1 noundef zeroext false)
  invoke void @_ZNK4juce8Graphics7fillAllENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %36, ptr noundef %21)
          to label %38 unwind label %51

38:                                               ; preds = %10
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %21) #6
  %39 = load ptr, ptr %20, align 8, !tbaa !5
  %40 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %39) #6
  br i1 %40, label %41, label %59

41:                                               ; preds = %38
  %42 = load ptr, ptr %20, align 8, !tbaa !5
  %43 = call noundef zeroext i1 @_ZNK4juce9Component16hasKeyboardFocusEb(ptr noundef nonnull align 8 dereferenceable(197) %42, i1 noundef zeroext false)
  br i1 %43, label %44, label %59

44:                                               ; preds = %41
  %45 = load ptr, ptr %12, align 8, !tbaa !5
  %46 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %24, ptr noundef nonnull align 8 dereferenceable(197) %46, i32 noundef 16780544, i1 noundef zeroext false)
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %45, ptr noundef %24)
          to label %47 unwind label %55

47:                                               ; preds = %44
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  %48 = load ptr, ptr %12, align 8, !tbaa !5
  %49 = load i32, ptr %13, align 4, !tbaa !9
  %50 = load i32, ptr %14, align 4, !tbaa !9
  call void @_ZNK4juce8Graphics8drawRectEiiiii(ptr noundef nonnull align 8 dereferenceable(17) %48, i32 noundef 0, i32 noundef 0, i32 noundef %49, i32 noundef %50, i32 noundef 2)
  br label %70

51:                                               ; preds = %10
  %52 = landingpad { ptr, i32 }
          cleanup
  %53 = extractvalue { ptr, i32 } %52, 0
  store ptr %53, ptr %22, align 8
  %54 = extractvalue { ptr, i32 } %52, 1
  store i32 %54, ptr %23, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %21) #6
  br label %197

55:                                               ; preds = %44
  %56 = landingpad { ptr, i32 }
          cleanup
  %57 = extractvalue { ptr, i32 } %56, 0
  store ptr %57, ptr %22, align 8
  %58 = extractvalue { ptr, i32 } %56, 1
  store i32 %58, ptr %23, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  br label %197

59:                                               ; preds = %41, %38
  %60 = load ptr, ptr %12, align 8, !tbaa !5
  %61 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %25, ptr noundef nonnull align 8 dereferenceable(197) %61, i32 noundef 16780288, i1 noundef zeroext false)
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %60, ptr noundef %25)
          to label %62 unwind label %66

62:                                               ; preds = %59
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %25) #6
  %63 = load ptr, ptr %12, align 8, !tbaa !5
  %64 = load i32, ptr %13, align 4, !tbaa !9
  %65 = load i32, ptr %14, align 4, !tbaa !9
  call void @_ZNK4juce8Graphics8drawRectEiiiii(ptr noundef nonnull align 8 dereferenceable(17) %63, i32 noundef 0, i32 noundef 0, i32 noundef %64, i32 noundef %65, i32 noundef 1)
  br label %70

66:                                               ; preds = %59
  %67 = landingpad { ptr, i32 }
          cleanup
  %68 = extractvalue { ptr, i32 } %67, 0
  store ptr %68, ptr %22, align 8
  %69 = extractvalue { ptr, i32 } %67, 1
  store i32 %69, ptr %23, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %25) #6
  br label %197

70:                                               ; preds = %62, %47
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %71 = load ptr, ptr %20, align 8, !tbaa !5
  %72 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %71) #6
  br i1 %72, label %73, label %78

73:                                               ; preds = %70
  %74 = load i8, ptr %15, align 1, !tbaa !11, !range !13, !noundef !14
  %75 = trunc i8 %74 to i1
  %76 = zext i1 %75 to i64
  %77 = select i1 %75, float 0x3FF3333340000000, float 5.000000e-01
  br label %79

78:                                               ; preds = %70
  br label %79

79:                                               ; preds = %78, %73
  %80 = phi float [ %77, %73 ], [ 0x3FD3333340000000, %78 ]
  store float %80, ptr %26, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  %81 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %29, ptr noundef nonnull align 8 dereferenceable(197) %81, i32 noundef 16780544, i1 noundef zeroext false)
  %82 = load ptr, ptr %20, align 8, !tbaa !5
  %83 = call noundef zeroext i1 @_ZNK4juce9Component16hasKeyboardFocusEb(ptr noundef nonnull align 8 dereferenceable(197) %82, i1 noundef zeroext true)
  %84 = load i8, ptr %15, align 1, !tbaa !11, !range !13, !noundef !14
  %85 = trunc i8 %84 to i1
  call void @_ZN4juce18LookAndFeelHelpersL16createBaseColourENS_6ColourEbbb(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %28, ptr noundef %29, i1 noundef zeroext %83, i1 noundef zeroext false, i1 noundef zeroext %85) #6
  %86 = load ptr, ptr %20, align 8, !tbaa !5
  %87 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %86) #6
  %88 = zext i1 %87 to i64
  %89 = select i1 %87, float 1.000000e+00, float 5.000000e-01
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %27, ptr noundef nonnull align 1 dereferenceable(4) %28, float noundef %89) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %28) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  %90 = load ptr, ptr %12, align 8, !tbaa !5
  %91 = load i32, ptr %16, align 4, !tbaa !9
  %92 = sitofp i32 %91 to float
  %93 = load float, ptr %26, align 4, !tbaa !15
  %94 = fadd float %92, %93
  %95 = load i32, ptr %17, align 4, !tbaa !9
  %96 = sitofp i32 %95 to float
  %97 = load float, ptr %26, align 4, !tbaa !15
  %98 = fadd float %96, %97
  %99 = load i32, ptr %18, align 4, !tbaa !9
  %100 = sitofp i32 %99 to float
  %101 = load float, ptr %26, align 4, !tbaa !15
  %102 = fneg float %101
  %103 = call float @llvm.fmuladd.f32(float %102, float 2.000000e+00, float %100)
  %104 = load i32, ptr %19, align 4, !tbaa !9
  %105 = sitofp i32 %104 to float
  %106 = load float, ptr %26, align 4, !tbaa !15
  %107 = fneg float %106
  %108 = call float @llvm.fmuladd.f32(float %107, float 2.000000e+00, float %105)
  %109 = load float, ptr %26, align 4, !tbaa !15
  call void @_ZN4juce14LookAndFeel_V216drawGlassLozengeERNS_8GraphicsEffffRKNS_6ColourEffbbbb(ptr noundef nonnull align 8 dereferenceable(17) %90, float noundef %94, float noundef %98, float noundef %103, float noundef %108, ptr noundef nonnull align 1 dereferenceable(4) %27, float noundef %109, float noundef -1.000000e+00, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true) #6
  %110 = load ptr, ptr %20, align 8, !tbaa !5
  %111 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %110) #6
  br i1 %111, label %112, label %196

112:                                              ; preds = %79
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  store float 0x3FD3333340000000, ptr %30, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store float 0x3FC99999A0000000, ptr %31, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 48, ptr %32) #6
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %113 unwind label %182

113:                                              ; preds = %112
  %114 = load i32, ptr %16, align 4, !tbaa !9
  %115 = sitofp i32 %114 to float
  %116 = load i32, ptr %18, align 4, !tbaa !9
  %117 = sitofp i32 %116 to float
  %118 = call float @llvm.fmuladd.f32(float %117, float 5.000000e-01, float %115)
  %119 = load i32, ptr %17, align 4, !tbaa !9
  %120 = sitofp i32 %119 to float
  %121 = load i32, ptr %19, align 4, !tbaa !9
  %122 = sitofp i32 %121 to float
  %123 = call float @llvm.fmuladd.f32(float %122, float 0x3FCFFFFFE0000000, float %120)
  %124 = load i32, ptr %16, align 4, !tbaa !9
  %125 = sitofp i32 %124 to float
  %126 = load i32, ptr %18, align 4, !tbaa !9
  %127 = sitofp i32 %126 to float
  %128 = call float @llvm.fmuladd.f32(float %127, float 0x3FE6666660000000, float %125)
  %129 = load i32, ptr %17, align 4, !tbaa !9
  %130 = sitofp i32 %129 to float
  %131 = load i32, ptr %19, align 4, !tbaa !9
  %132 = sitofp i32 %131 to float
  %133 = call float @llvm.fmuladd.f32(float %132, float 0x3FDCCCCCC0000000, float %130)
  %134 = load i32, ptr %16, align 4, !tbaa !9
  %135 = sitofp i32 %134 to float
  %136 = load i32, ptr %18, align 4, !tbaa !9
  %137 = sitofp i32 %136 to float
  %138 = call float @llvm.fmuladd.f32(float %137, float 0x3FD3333340000000, float %135)
  %139 = load i32, ptr %17, align 4, !tbaa !9
  %140 = sitofp i32 %139 to float
  %141 = load i32, ptr %19, align 4, !tbaa !9
  %142 = sitofp i32 %141 to float
  %143 = call float @llvm.fmuladd.f32(float %142, float 0x3FDCCCCCC0000000, float %140)
  invoke void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41) %32, float noundef %118, float noundef %123, float noundef %128, float noundef %133, float noundef %138, float noundef %143)
          to label %144 unwind label %186

144:                                              ; preds = %113
  %145 = load i32, ptr %16, align 4, !tbaa !9
  %146 = sitofp i32 %145 to float
  %147 = load i32, ptr %18, align 4, !tbaa !9
  %148 = sitofp i32 %147 to float
  %149 = call float @llvm.fmuladd.f32(float %148, float 5.000000e-01, float %146)
  %150 = load i32, ptr %17, align 4, !tbaa !9
  %151 = sitofp i32 %150 to float
  %152 = load i32, ptr %19, align 4, !tbaa !9
  %153 = sitofp i32 %152 to float
  %154 = call float @llvm.fmuladd.f32(float %153, float 7.500000e-01, float %151)
  %155 = load i32, ptr %16, align 4, !tbaa !9
  %156 = sitofp i32 %155 to float
  %157 = load i32, ptr %18, align 4, !tbaa !9
  %158 = sitofp i32 %157 to float
  %159 = call float @llvm.fmuladd.f32(float %158, float 0x3FE6666660000000, float %156)
  %160 = load i32, ptr %17, align 4, !tbaa !9
  %161 = sitofp i32 %160 to float
  %162 = load i32, ptr %19, align 4, !tbaa !9
  %163 = sitofp i32 %162 to float
  %164 = call float @llvm.fmuladd.f32(float %163, float 0x3FE19999A0000000, float %161)
  %165 = load i32, ptr %16, align 4, !tbaa !9
  %166 = sitofp i32 %165 to float
  %167 = load i32, ptr %18, align 4, !tbaa !9
  %168 = sitofp i32 %167 to float
  %169 = call float @llvm.fmuladd.f32(float %168, float 0x3FD3333340000000, float %166)
  %170 = load i32, ptr %17, align 4, !tbaa !9
  %171 = sitofp i32 %170 to float
  %172 = load i32, ptr %19, align 4, !tbaa !9
  %173 = sitofp i32 %172 to float
  %174 = call float @llvm.fmuladd.f32(float %173, float 0x3FE19999A0000000, float %171)
  invoke void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41) %32, float noundef %149, float noundef %154, float noundef %159, float noundef %164, float noundef %169, float noundef %174)
          to label %175 unwind label %186

175:                                              ; preds = %144
  %176 = load ptr, ptr %12, align 8, !tbaa !5
  %177 = load ptr, ptr %20, align 8, !tbaa !5
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %33, ptr noundef nonnull align 8 dereferenceable(197) %177, i32 noundef 16780800, i1 noundef zeroext false)
          to label %178 unwind label %186

178:                                              ; preds = %175
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %176, ptr noundef %33)
          to label %179 unwind label %190

179:                                              ; preds = %178
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %33) #6
  %180 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %180, ptr noundef nonnull align 8 dereferenceable(41) %32)
          to label %181 unwind label %186

181:                                              ; preds = %179
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %32) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br label %196

182:                                              ; preds = %112
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %22, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %23, align 4
  br label %195

186:                                              ; preds = %179, %175, %144, %113
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %22, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %23, align 4
  br label %194

190:                                              ; preds = %178
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %22, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %23, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %33) #6
  br label %194

194:                                              ; preds = %190, %186
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %32) #6
  br label %195

195:                                              ; preds = %194, %182
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %197

196:                                              ; preds = %181, %79
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  ret void

197:                                              ; preds = %195, %66, %55, %51
  %198 = load ptr, ptr %22, align 8
  %199 = load i32, ptr %23, align 4
  %200 = insertvalue { ptr, i32 } poison, ptr %198, 0
  %201 = insertvalue { ptr, i32 } %200, i32 %199, 1
  resume { ptr, i32 } %201
}

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 nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { "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 #5 = { 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 }

!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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}


; 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 }

declare i32 @__gxx_personality_v0(...)

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

; 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9Component16hasKeyboardFocusEb(ptr noundef nonnull align 8 dereferenceable(197), i1 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind noalias writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197)) local_unnamed_addr #1 align 2

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

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

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

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

declare void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #4

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

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

; 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 #5

declare void @_ZNK4juce8Graphics7fillAllENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN4juce18LookAndFeelHelpersL16createBaseColourENS_6ColourEbbb(ptr dead_on_unwind noalias writable sret(%"class.juce::Colour") align 1, ptr noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4juce14LookAndFeel_V216drawGlassLozengeERNS_8GraphicsEffffRKNS_6ColourEffbbbb(ptr noundef nonnull align 8 dereferenceable(17), float noundef, float noundef, float noundef, float noundef, ptr noundef nonnull align 1 dereferenceable(4), float noundef, float noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #1 align 2

declare void @_ZNK4juce8Graphics8drawRectEiiiii(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce14LookAndFeel_V212drawComboBoxERNS_8GraphicsEiibiiiiRNS_8ComboBoxE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(304) %0, ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef %2, i32 noundef %3, i1 noundef zeroext %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, ptr noundef nonnull align 8 dereferenceable(380) %9) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca %"class.juce::Colour", align 1
  %12 = alloca %"class.juce::Colour", align 1
  %13 = alloca %"class.juce::Colour", align 1
  %14 = alloca %"class.juce::Colour", align 1
  %15 = alloca %"class.juce::Colour", align 1
  %16 = alloca %"class.juce::Colour", align 1
  %17 = alloca %"class.juce::Path", align 8
  %18 = alloca %"class.juce::Colour", align 1
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %11, ptr noundef nonnull align 8 dereferenceable(197) %9, i32 noundef 16780032, i1 noundef zeroext false)
  invoke void @_ZNK4juce8Graphics7fillAllENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull %11)
          to label %19 unwind label %24

19:                                               ; preds = %10
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %11) #6
  %20 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %9) #6
  br i1 %20, label %21, label %28

21:                                               ; preds = %19
  %22 = call noundef zeroext i1 @_ZNK4juce9Component16hasKeyboardFocusEb(ptr noundef nonnull align 8 dereferenceable(197) %9, i1 noundef zeroext false)
  br i1 %22, label %23, label %28

23:                                               ; preds = %21
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %12, ptr noundef nonnull align 8 dereferenceable(197) %9, i32 noundef 16780544, i1 noundef zeroext false)
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull %12)
          to label %31 unwind label %26

24:                                               ; preds = %10
  %25 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %11) #6
  br label %71

26:                                               ; preds = %23
  %27 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %12) #6
  br label %71

28:                                               ; preds = %21, %19
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %13, ptr noundef nonnull align 8 dereferenceable(197) %9, i32 noundef 16780288, i1 noundef zeroext false)
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull %13)
          to label %31 unwind label %29

29:                                               ; preds = %28
  %30 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %13) #6
  br label %71

31:                                               ; preds = %28, %23
  %.sink66 = phi ptr [ %12, %23 ], [ %13, %28 ]
  %.sink = phi i32 [ 2, %23 ], [ 1, %28 ]
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %.sink66) #6
  call void @_ZNK4juce8Graphics8drawRectEiiiii(ptr noundef nonnull align 8 dereferenceable(17) %1, i32 noundef 0, i32 noundef 0, i32 noundef %2, i32 noundef %3, i32 noundef %.sink)
  %32 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %9) #6
  %33 = select i1 %4, float 0x3FF3333340000000, float 5.000000e-01
  %34 = select i1 %32, float %33, float 0x3FD3333340000000
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  call void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %16, ptr noundef nonnull align 8 dereferenceable(197) %9, i32 noundef 16780544, i1 noundef zeroext false)
  %35 = call noundef zeroext i1 @_ZNK4juce9Component16hasKeyboardFocusEb(ptr noundef nonnull align 8 dereferenceable(197) %9, i1 noundef zeroext true)
  call void @_ZN4juce18LookAndFeelHelpersL16createBaseColourENS_6ColourEbbb(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %15, ptr noundef nonnull %16, i1 noundef zeroext %35, i1 noundef zeroext false, i1 noundef zeroext %4) #6
  %36 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %9) #6
  %37 = select i1 %36, float 1.000000e+00, float 5.000000e-01
  call void @_ZNK4juce6Colour19withMultipliedAlphaEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %14, ptr noundef nonnull align 1 dereferenceable(4) %15, float noundef %37) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %15) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  %38 = sitofp i32 %5 to float
  %39 = fadd float %34, %38
  %40 = sitofp i32 %6 to float
  %41 = fadd float %34, %40
  %42 = sitofp i32 %7 to float
  %43 = fneg float %34
  %44 = call float @llvm.fmuladd.f32(float %43, float 2.000000e+00, float %42)
  %45 = sitofp i32 %8 to float
  %46 = call float @llvm.fmuladd.f32(float %43, float 2.000000e+00, float %45)
  call void @_ZN4juce14LookAndFeel_V216drawGlassLozengeERNS_8GraphicsEffffRKNS_6ColourEffbbbb(ptr noundef nonnull align 8 dereferenceable(17) %1, float noundef %39, float noundef %41, float noundef %44, float noundef %46, ptr noundef nonnull align 1 dereferenceable(4) %14, float noundef %34, float noundef -1.000000e+00, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext true) #6
  %47 = call noundef zeroext i1 @_ZNK4juce9Component9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(197) %9) #6
  br i1 %47, label %48, label %70

48:                                               ; preds = %31
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %17) #6
  invoke void @_ZN4juce4PathC1Ev(ptr noundef nonnull align 8 dereferenceable(41) %17)
          to label %49 unwind label %62

49:                                               ; preds = %48
  %50 = call float @llvm.fmuladd.f32(float %42, float 5.000000e-01, float %38)
  %51 = call float @llvm.fmuladd.f32(float %45, float 0x3FCFFFFFE0000000, float %40)
  %52 = call float @llvm.fmuladd.f32(float %42, float 0x3FE6666660000000, float %38)
  %53 = call float @llvm.fmuladd.f32(float %45, float 0x3FDCCCCCC0000000, float %40)
  %54 = call float @llvm.fmuladd.f32(float %42, float 0x3FD3333340000000, float %38)
  invoke void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41) %17, float noundef %50, float noundef %51, float noundef %52, float noundef %53, float noundef %54, float noundef %53)
          to label %55 unwind label %64

55:                                               ; preds = %49
  %56 = call float @llvm.fmuladd.f32(float %45, float 7.500000e-01, float %40)
  %57 = call float @llvm.fmuladd.f32(float %45, float 0x3FE19999A0000000, float %40)
  invoke void @_ZN4juce4Path11addTriangleEffffff(ptr noundef nonnull align 8 dereferenceable(41) %17, float noundef %50, float noundef %56, float noundef %52, float noundef %57, float noundef %54, float noundef %57)
          to label %58 unwind label %64

58:                                               ; preds = %55
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %18, ptr noundef nonnull align 8 dereferenceable(197) %9, i32 noundef 16780800, i1 noundef zeroext false)
          to label %59 unwind label %64

59:                                               ; preds = %58
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull %18)
          to label %60 unwind label %66

60:                                               ; preds = %59
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %18) #6
  invoke void @_ZNK4juce8Graphics8fillPathERKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(17) %1, ptr noundef nonnull align 8 dereferenceable(41) %17)
          to label %61 unwind label %64

61:                                               ; preds = %60
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %17) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #6
  br label %70

62:                                               ; preds = %48
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %69

64:                                               ; preds = %60, %58, %55, %49
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %68

66:                                               ; preds = %59
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %18) #6
  br label %68

68:                                               ; preds = %66, %64
  %.pn = phi { ptr, i32 } [ %65, %64 ], [ %67, %66 ]
  call void @_ZN4juce4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(41) %17) #6
  br label %69

69:                                               ; preds = %68, %62
  %.pn.pn = phi { ptr, i32 } [ %.pn, %68 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %71

70:                                               ; preds = %61, %31
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  ret void

71:                                               ; preds = %69, %29, %26, %24
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %69 ], [ %27, %26 ], [ %30, %29 ], [ %25, %24 ]
  resume { ptr, i32 } %.pn.pn.pn
}

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 nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { "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 #5 = { 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 }

!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,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass