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

; 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.153 }
%union.anon.153 = type { i32 }
%"class.juce::String" = type { %"class.juce::CharPointer_UTF8" }
%"class.juce::CharPointer_UTF8" = type { ptr }
%"class.juce::Font" = type { %"class.juce::ReferenceCountedObjectPtr.86" }
%"class.juce::ReferenceCountedObjectPtr.86" = type { ptr }
%"class.juce::Justification" = type { i32 }
%"class.juce::MidiKeyboardComponent" = type { %"class.juce::Component.base", %"class.juce::MidiKeyboardStateListener", %"class.juce::ChangeBroadcaster", %"class.juce::Timer", ptr, float, i32, float, i32, i32, i32, float, [4 x i8], %"class.juce::Array.97", %"class.juce::Array.97", %"class.juce::BigInteger", %"class.juce::BigInteger", i8, i32, i32, float, i8, i8, i8, %"class.juce::ScopedPointer.164", %"class.juce::ScopedPointer.164", %"class.juce::Array.102", %"class.juce::Array.97", i32, i32 }
%"class.juce::Component.base" = type <{ %"class.juce::MouseListener", %"class.juce::String", %"class.juce::String", ptr, %"class.juce::Rectangle", %"class.juce::ScopedPointer", %"class.juce::ScopedPointer.0", %"class.juce::Array", ptr, %"class.juce::MouseCursor", ptr, %"class.juce::ScopedPointer.1", %"class.juce::ScopedPointer.2", %"class.juce::ScopedPointer.3", %"class.juce::ListenerList", %"class.juce::NamedValueSet", %"class.juce::WeakReference<juce::Component>::Master", %union.anon, i8 }>
%"class.juce::MouseListener" = type { ptr }
%"class.juce::Rectangle" = type { %"class.juce::Point", i32, i32 }
%"class.juce::Point" = type { i32, i32 }
%"class.juce::ScopedPointer" = type { ptr }
%"class.juce::ScopedPointer.0" = type { ptr }
%"class.juce::Array" = type { %"class.juce::ArrayAllocationBase", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase" = type <{ %"class.juce::HeapBlock", i32, [4 x i8] }>
%"class.juce::HeapBlock" = type { ptr }
%"class.juce::MouseCursor" = type { ptr }
%"class.juce::ScopedPointer.1" = type { ptr }
%"class.juce::ScopedPointer.2" = type { ptr }
%"class.juce::ScopedPointer.3" = type { ptr }
%"class.juce::ListenerList" = type { %"class.juce::Array.4" }
%"class.juce::Array.4" = type { %"class.juce::ArrayAllocationBase.5", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.5" = type <{ %"class.juce::HeapBlock.6", i32, [4 x i8] }>
%"class.juce::HeapBlock.6" = type { ptr }
%"class.juce::NamedValueSet" = type { %"class.juce::Array.9" }
%"class.juce::Array.9" = type { %"class.juce::ArrayAllocationBase.10", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.10" = type <{ %"class.juce::HeapBlock.11", i32, [4 x i8] }>
%"class.juce::HeapBlock.11" = type { ptr }
%"class.juce::WeakReference<juce::Component>::Master" = type { %"class.juce::ReferenceCountedObjectPtr" }
%"class.juce::ReferenceCountedObjectPtr" = type { ptr }
%union.anon = type { i32 }
%"class.juce::MidiKeyboardStateListener" = type { ptr }
%"class.juce::ChangeBroadcaster" = type { ptr, %"class.juce::ChangeBroadcaster::ChangeBroadcasterCallback", %"class.juce::ListenerList.20" }
%"class.juce::ChangeBroadcaster::ChangeBroadcasterCallback" = type { %"class.juce::AsyncUpdater", ptr }
%"class.juce::AsyncUpdater" = type { ptr, %"class.juce::ReferenceCountedObjectPtr.19" }
%"class.juce::ReferenceCountedObjectPtr.19" = type { ptr }
%"class.juce::ListenerList.20" = type { %"class.juce::Array.21" }
%"class.juce::Array.21" = type { %"class.juce::ArrayAllocationBase.22", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.22" = type <{ %"class.juce::HeapBlock.23", i32, [4 x i8] }>
%"class.juce::HeapBlock.23" = type { ptr }
%"class.juce::Timer" = type { ptr, i32, i32, ptr, ptr }
%"class.juce::BigInteger" = type <{ %"class.juce::HeapBlock.34", [4 x i32], i64, i32, i8, [3 x i8] }>
%"class.juce::HeapBlock.34" = type { ptr }
%"class.juce::ScopedPointer.164" = type { ptr }
%"class.juce::Array.102" = type { %"class.juce::ArrayAllocationBase.103", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.103" = type <{ %"class.juce::HeapBlock.104", i32, [4 x i8] }>
%"class.juce::HeapBlock.104" = type { ptr }
%"class.juce::Array.97" = type { %"class.juce::ArrayAllocationBase.98", i32, [4 x i8] }
%"class.juce::ArrayAllocationBase.98" = type <{ %"class.juce::HeapBlock.99", i32, [4 x i8] }>
%"class.juce::HeapBlock.99" = type { ptr }

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

; 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 void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) unnamed_addr #2 align 2

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

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

; Function Attrs: nounwind
declare noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(4)) #1

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

declare void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i1 noundef zeroext) #3

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNK4juce6Colour13isTransparentEv(ptr noundef nonnull align 1 dereferenceable(4)) #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce21MidiKeyboardComponent13drawWhiteNoteEiRNS_8GraphicsEiiiibbRKNS_6ColourES5_(ptr noundef nonnull align 8 dereferenceable(560) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(17) %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i1 noundef zeroext %7, i1 noundef zeroext %8, ptr noundef nonnull align 1 dereferenceable(4) %9, ptr noundef nonnull align 1 dereferenceable(4) %10) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.juce::Colour", align 1
  %24 = alloca %"class.juce::Colour", align 1
  %25 = alloca ptr, align 8
  %26 = alloca i32, 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 %"class.juce::String", align 8
  %31 = alloca float, align 4
  %32 = alloca %"class.juce::Colour", align 1
  %33 = alloca %"class.juce::Font", align 8
  %34 = alloca %"class.juce::Font", align 8
  %35 = alloca %"class.juce::Justification", align 4
  %36 = alloca %"class.juce::Justification", align 4
  %37 = alloca %"class.juce::Justification", align 4
  %38 = alloca %"class.juce::Colour", align 1
  store ptr %0, ptr %12, align 8, !tbaa !5
  store i32 %1, ptr %13, align 4, !tbaa !9
  store ptr %2, ptr %14, align 8, !tbaa !5
  store i32 %3, ptr %15, align 4, !tbaa !9
  store i32 %4, ptr %16, align 4, !tbaa !9
  store i32 %5, ptr %17, align 4, !tbaa !9
  store i32 %6, ptr %18, align 4, !tbaa !9
  %39 = zext i1 %7 to i8
  store i8 %39, ptr %19, align 1, !tbaa !11
  %40 = zext i1 %8 to i8
  store i8 %40, ptr %20, align 1, !tbaa !11
  store ptr %9, ptr %21, align 8, !tbaa !5
  store ptr %10, ptr %22, align 8, !tbaa !5
  %41 = load ptr, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %23, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentWhiteE) #6
  %42 = load i8, ptr %19, align 1, !tbaa !11, !range !13, !noundef !14
  %43 = trunc i8 %42 to i1
  br i1 %43, label %44, label %51

44:                                               ; preds = %11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %24, ptr noundef nonnull align 8 dereferenceable(197) %41, i32 noundef 16797700, i1 noundef zeroext false)
          to label %45 unwind label %47

45:                                               ; preds = %44
  %46 = call noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %23, ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br label %51

47:                                               ; preds = %44
  %48 = landingpad { ptr, i32 }
          cleanup
  %49 = extractvalue { ptr, i32 } %48, 0
  store ptr %49, ptr %25, align 8
  %50 = extractvalue { ptr, i32 } %48, 1
  store i32 %50, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br label %237

51:                                               ; preds = %45, %11
  %52 = load i8, ptr %20, align 1, !tbaa !11, !range !13, !noundef !14
  %53 = trunc i8 %52 to i1
  br i1 %53, label %54, label %61

54:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %28, ptr noundef nonnull align 8 dereferenceable(197) %41, i32 noundef 16797699, i1 noundef zeroext false)
          to label %55 unwind label %57

55:                                               ; preds = %54
  call void @_ZNK4juce6Colour12overlaidWithES0_(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1 %27, ptr noundef nonnull align 1 dereferenceable(4) %23, ptr noundef %28) #6
  %56 = call noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %23, ptr noundef nonnull align 1 dereferenceable(4) %27) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %27) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %61

57:                                               ; preds = %54
  %58 = landingpad { ptr, i32 }
          cleanup
  %59 = extractvalue { ptr, i32 } %58, 0
  store ptr %59, ptr %25, align 8
  %60 = extractvalue { ptr, i32 } %58, 1
  store i32 %60, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %237

61:                                               ; preds = %55, %51
  %62 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %29, ptr noundef nonnull align 1 dereferenceable(4) %23) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %62, ptr noundef %29)
          to label %63 unwind label %92

63:                                               ; preds = %61
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %29) #6
  %64 = load ptr, ptr %14, align 8, !tbaa !5
  %65 = load i32, ptr %15, align 4, !tbaa !9
  %66 = load i32, ptr %16, align 4, !tbaa !9
  %67 = load i32, ptr %17, align 4, !tbaa !9
  %68 = load i32, ptr %18, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %64, i32 noundef %65, i32 noundef %66, i32 noundef %67, i32 noundef %68)
          to label %69 unwind label %96

69:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %70 = load i32, ptr %13, align 4, !tbaa !9
  %71 = load ptr, ptr %41, align 8, !tbaa !15
  %72 = getelementptr inbounds ptr, ptr %71, i64 50
  %73 = load ptr, ptr %72, align 8
  invoke void %73(ptr dead_on_unwind writable sret(%"class.juce::String") align 8 %30, ptr noundef nonnull align 8 dereferenceable(560) %41, i32 noundef %70)
          to label %74 unwind label %100

74:                                               ; preds = %69
  %75 = call noundef zeroext i1 @_ZNK4juce6String10isNotEmptyEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  br i1 %75, label %76, label %161

76:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  %77 = getelementptr inbounds %"class.juce::MidiKeyboardComponent", ptr %41, i32 0, i32 7
  %78 = load float, ptr %77, align 8, !tbaa !17
  %79 = fmul float %78, 0x3FECCCCCC0000000
  %80 = invoke noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef 1.200000e+01, float noundef %79)
          to label %81 unwind label %104

81:                                               ; preds = %76
  store float %80, ptr %31, align 4, !tbaa !66
  %82 = load ptr, ptr %14, align 8, !tbaa !5
  %83 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %32, ptr noundef nonnull align 1 dereferenceable(4) %83) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %82, ptr noundef %32)
          to label %84 unwind label %108

84:                                               ; preds = %81
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %32) #6
  %85 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  %86 = load float, ptr %31, align 4, !tbaa !66
  invoke void @_ZN4juce4FontC1Efi(ptr noundef nonnull align 8 dereferenceable(8) %34, float noundef %86, i32 noundef 0)
          to label %87 unwind label %112

87:                                               ; preds = %84
  invoke void @_ZNK4juce4Font19withHorizontalScaleEf(ptr dead_on_unwind writable sret(%"class.juce::Font") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %34, float noundef 0x3FE99999A0000000)
          to label %88 unwind label %116

88:                                               ; preds = %87
  invoke void @_ZN4juce8Graphics7setFontERKNS_4FontE(ptr noundef nonnull align 8 dereferenceable(17) %85, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %89 unwind label %120

89:                                               ; preds = %88
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  %90 = getelementptr inbounds %"class.juce::MidiKeyboardComponent", ptr %41, i32 0, i32 8
  %91 = load i32, ptr %90, align 4, !tbaa !67
  switch i32 %91, label %158 [
    i32 0, label %126
    i32 1, label %136
    i32 2, label %147
  ]

92:                                               ; preds = %61
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %25, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %26, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %29) #6
  br label %237

96:                                               ; preds = %63
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %25, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %26, align 4
  br label %237

100:                                              ; preds = %69
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %25, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %26, align 4
  br label %236

104:                                              ; preds = %147, %136, %126, %76
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %25, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %26, align 4
  br label %160

108:                                              ; preds = %81
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %25, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %26, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %32) #6
  br label %160

112:                                              ; preds = %84
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %25, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %26, align 4
  br label %125

116:                                              ; preds = %87
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %25, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %26, align 4
  br label %124

120:                                              ; preds = %88
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %25, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %26, align 4
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  br label %124

124:                                              ; preds = %120, %116
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  br label %125

125:                                              ; preds = %124, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  br label %160

126:                                              ; preds = %89
  %127 = load ptr, ptr %14, align 8, !tbaa !5
  %128 = load i32, ptr %15, align 4, !tbaa !9
  %129 = add nsw i32 %128, 1
  %130 = load i32, ptr %16, align 4, !tbaa !9
  %131 = load i32, ptr %17, align 4, !tbaa !9
  %132 = sub nsw i32 %131, 1
  %133 = load i32, ptr %18, align 4, !tbaa !9
  %134 = sub nsw i32 %133, 2
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %35, i32 noundef 20) #6
  invoke void @_ZNK4juce8Graphics8drawTextERKNS_6StringEiiiiNS_13JustificationEb(ptr noundef nonnull align 8 dereferenceable(17) %127, ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef %129, i32 noundef %130, i32 noundef %132, i32 noundef %134, ptr noundef %35, i1 noundef zeroext false)
          to label %135 unwind label %104

135:                                              ; preds = %126
  br label %159

136:                                              ; preds = %89
  %137 = load ptr, ptr %14, align 8, !tbaa !5
  %138 = load i32, ptr %15, align 4, !tbaa !9
  %139 = add nsw i32 %138, 2
  %140 = load i32, ptr %16, align 4, !tbaa !9
  %141 = add nsw i32 %140, 2
  %142 = load i32, ptr %17, align 4, !tbaa !9
  %143 = sub nsw i32 %142, 4
  %144 = load i32, ptr %18, align 4, !tbaa !9
  %145 = sub nsw i32 %144, 4
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %36, i32 noundef 33) #6
  invoke void @_ZNK4juce8Graphics8drawTextERKNS_6StringEiiiiNS_13JustificationEb(ptr noundef nonnull align 8 dereferenceable(17) %137, ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef %139, i32 noundef %141, i32 noundef %143, i32 noundef %145, ptr noundef %36, i1 noundef zeroext false)
          to label %146 unwind label %104

146:                                              ; preds = %136
  br label %159

147:                                              ; preds = %89
  %148 = load ptr, ptr %14, align 8, !tbaa !5
  %149 = load i32, ptr %15, align 4, !tbaa !9
  %150 = add nsw i32 %149, 2
  %151 = load i32, ptr %16, align 4, !tbaa !9
  %152 = add nsw i32 %151, 2
  %153 = load i32, ptr %17, align 4, !tbaa !9
  %154 = sub nsw i32 %153, 4
  %155 = load i32, ptr %18, align 4, !tbaa !9
  %156 = sub nsw i32 %155, 4
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %37, i32 noundef 34) #6
  invoke void @_ZNK4juce8Graphics8drawTextERKNS_6StringEiiiiNS_13JustificationEb(ptr noundef nonnull align 8 dereferenceable(17) %148, ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef %150, i32 noundef %152, i32 noundef %154, i32 noundef %156, ptr noundef %37, i1 noundef zeroext false)
          to label %157 unwind label %104

157:                                              ; preds = %147
  br label %159

158:                                              ; preds = %89
  br label %159

159:                                              ; preds = %158, %157, %146, %135
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %161

160:                                              ; preds = %125, %108, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br label %235

161:                                              ; preds = %159, %74
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  %163 = call noundef zeroext i1 @_ZNK4juce6Colour13isTransparentEv(ptr noundef nonnull align 1 dereferenceable(4) %162) #6
  br i1 %163, label %234, label %164

164:                                              ; preds = %161
  %165 = load ptr, ptr %14, align 8, !tbaa !5
  %166 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %38, ptr noundef nonnull align 1 dereferenceable(4) %166) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %165, ptr noundef %38)
          to label %167 unwind label %170

167:                                              ; preds = %164
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %38) #6
  %168 = getelementptr inbounds %"class.juce::MidiKeyboardComponent", ptr %41, i32 0, i32 8
  %169 = load i32, ptr %168, align 4, !tbaa !67
  switch i32 %169, label %199 [
    i32 0, label %174
    i32 1, label %184
    i32 2, label %190
  ]

170:                                              ; preds = %164
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %25, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %26, align 4
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %38) #6
  br label %235

174:                                              ; preds = %167
  %175 = load ptr, ptr %14, align 8, !tbaa !5
  %176 = load i32, ptr %15, align 4, !tbaa !9
  %177 = load i32, ptr %16, align 4, !tbaa !9
  %178 = load i32, ptr %18, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %175, i32 noundef %176, i32 noundef %177, i32 noundef 1, i32 noundef %178)
          to label %179 unwind label %180

179:                                              ; preds = %174
  br label %200

180:                                              ; preds = %224, %216, %208, %190, %184, %174
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %25, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %26, align 4
  br label %235

184:                                              ; preds = %167
  %185 = load ptr, ptr %14, align 8, !tbaa !5
  %186 = load i32, ptr %15, align 4, !tbaa !9
  %187 = load i32, ptr %16, align 4, !tbaa !9
  %188 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %185, i32 noundef %186, i32 noundef %187, i32 noundef %188, i32 noundef 1)
          to label %189 unwind label %180

189:                                              ; preds = %184
  br label %200

190:                                              ; preds = %167
  %191 = load ptr, ptr %14, align 8, !tbaa !5
  %192 = load i32, ptr %15, align 4, !tbaa !9
  %193 = load i32, ptr %16, align 4, !tbaa !9
  %194 = load i32, ptr %18, align 4, !tbaa !9
  %195 = add nsw i32 %193, %194
  %196 = sub nsw i32 %195, 1
  %197 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %191, i32 noundef %192, i32 noundef %196, i32 noundef %197, i32 noundef 1)
          to label %198 unwind label %180

198:                                              ; preds = %190
  br label %200

199:                                              ; preds = %167
  br label %200

200:                                              ; preds = %199, %198, %189, %179
  %201 = load i32, ptr %13, align 4, !tbaa !9
  %202 = getelementptr inbounds %"class.juce::MidiKeyboardComponent", ptr %41, i32 0, i32 19
  %203 = load i32, ptr %202, align 8, !tbaa !68
  %204 = icmp eq i32 %201, %203
  br i1 %204, label %205, label %233

205:                                              ; preds = %200
  %206 = getelementptr inbounds %"class.juce::MidiKeyboardComponent", ptr %41, i32 0, i32 8
  %207 = load i32, ptr %206, align 4, !tbaa !67
  switch i32 %207, label %231 [
    i32 0, label %208
    i32 1, label %216
    i32 2, label %224
  ]

208:                                              ; preds = %205
  %209 = load ptr, ptr %14, align 8, !tbaa !5
  %210 = load i32, ptr %15, align 4, !tbaa !9
  %211 = load i32, ptr %17, align 4, !tbaa !9
  %212 = add nsw i32 %210, %211
  %213 = load i32, ptr %16, align 4, !tbaa !9
  %214 = load i32, ptr %18, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %209, i32 noundef %212, i32 noundef %213, i32 noundef 1, i32 noundef %214)
          to label %215 unwind label %180

215:                                              ; preds = %208
  br label %232

216:                                              ; preds = %205
  %217 = load ptr, ptr %14, align 8, !tbaa !5
  %218 = load i32, ptr %15, align 4, !tbaa !9
  %219 = load i32, ptr %16, align 4, !tbaa !9
  %220 = load i32, ptr %18, align 4, !tbaa !9
  %221 = add nsw i32 %219, %220
  %222 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %217, i32 noundef %218, i32 noundef %221, i32 noundef %222, i32 noundef 1)
          to label %223 unwind label %180

223:                                              ; preds = %216
  br label %232

224:                                              ; preds = %205
  %225 = load ptr, ptr %14, align 8, !tbaa !5
  %226 = load i32, ptr %15, align 4, !tbaa !9
  %227 = load i32, ptr %16, align 4, !tbaa !9
  %228 = sub nsw i32 %227, 1
  %229 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %225, i32 noundef %226, i32 noundef %228, i32 noundef %229, i32 noundef 1)
          to label %230 unwind label %180

230:                                              ; preds = %224
  br label %232

231:                                              ; preds = %205
  br label %232

232:                                              ; preds = %231, %230, %223, %215
  br label %233

233:                                              ; preds = %232, %200
  br label %234

234:                                              ; preds = %233, %161
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  ret void

235:                                              ; preds = %180, %170, %160
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  br label %236

236:                                              ; preds = %235, %100
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  br label %237

237:                                              ; preds = %236, %96, %92, %57, %47
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %238

238:                                              ; preds = %237
  %239 = load ptr, ptr %25, align 8
  %240 = load i32, ptr %26, align 4
  %241 = insertvalue { ptr, i32 } poison, ptr %239, 0
  %242 = insertvalue { ptr, i32 } %241, i32 %240, 1
  resume { ptr, i32 } %242
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce6String10isNotEmptyEv(ptr noundef nonnull align 8 dereferenceable(8)) #5 align 2

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

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

declare void @_ZN4juce4FontC1Efi(ptr noundef nonnull align 8 dereferenceable(8), float noundef, i32 noundef) unnamed_addr #3

declare void @_ZNK4juce4Font19withHorizontalScaleEf(ptr dead_on_unwind writable sret(%"class.juce::Font") align 8, ptr noundef nonnull align 8 dereferenceable(8), float noundef) #3

; Function Attrs: nounwind
declare void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 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 #5 = { 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 #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 = !{!"vtable pointer", !8, i64 0}
!17 = !{!18, !54, i64 312}
!18 = !{!"_ZTSN4juce21MidiKeyboardComponentE", !19, i64 0, !44, i64 200, !45, i64 208, !53, i64 264, !6, i64 296, !54, i64 304, !10, i64 308, !54, i64 312, !55, i64 316, !10, i64 320, !10, i64 324, !54, i64 328, !56, i64 336, !56, i64 360, !59, i64 384, !59, i64 424, !12, i64 464, !10, i64 468, !10, i64 472, !54, i64 476, !12, i64 480, !12, i64 481, !12, i64 482, !62, i64 488, !62, i64 496, !63, i64 504, !56, i64 528, !10, i64 552, !10, i64 556}
!19 = !{!"_ZTSN4juce9ComponentE", !20, i64 0, !21, i64 8, !21, i64 16, !6, i64 24, !23, i64 32, !25, i64 48, !26, i64 56, !27, i64 64, !6, i64 88, !30, i64 96, !6, i64 104, !31, i64 112, !32, i64 120, !33, i64 128, !34, i64 136, !38, i64 160, !42, i64 184, !7, i64 192, !7, i64 196}
!20 = !{!"_ZTSN4juce13MouseListenerE"}
!21 = !{!"_ZTSN4juce6StringE", !22, i64 0}
!22 = !{!"_ZTSN4juce16CharPointer_UTF8E", !6, i64 0}
!23 = !{!"_ZTSN4juce9RectangleIiEE", !24, i64 0, !10, i64 8, !10, i64 12}
!24 = !{!"_ZTSN4juce5PointIiEE", !10, i64 0, !10, i64 4}
!25 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !6, i64 0}
!26 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !6, i64 0}
!27 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !28, i64 0, !10, i64 16}
!28 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !29, i64 0, !10, i64 8}
!29 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !6, i64 0}
!30 = !{!"_ZTSN4juce11MouseCursorE", !6, i64 0}
!31 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !6, i64 0}
!32 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !6, i64 0}
!33 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !6, i64 0}
!34 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !35, i64 0}
!35 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !36, i64 0, !10, i64 16}
!36 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !37, i64 0, !10, i64 8}
!37 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !6, i64 0}
!38 = !{!"_ZTSN4juce13NamedValueSetE", !39, i64 0}
!39 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !40, i64 0, !10, i64 16}
!40 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !41, i64 0, !10, i64 8}
!41 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !6, i64 0}
!42 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !43, i64 0}
!43 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !6, i64 0}
!44 = !{!"_ZTSN4juce25MidiKeyboardStateListenerE"}
!45 = !{!"_ZTSN4juce17ChangeBroadcasterE", !46, i64 8, !49, i64 32}
!46 = !{!"_ZTSN4juce17ChangeBroadcaster25ChangeBroadcasterCallbackE", !47, i64 0, !6, i64 16}
!47 = !{!"_ZTSN4juce12AsyncUpdaterE", !48, i64 8}
!48 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_12AsyncUpdater19AsyncUpdaterMessageEEE", !6, i64 0}
!49 = !{!"_ZTSN4juce12ListenerListINS_14ChangeListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !50, i64 0}
!50 = !{!"_ZTSN4juce5ArrayIPNS_14ChangeListenerENS_20DummyCriticalSectionELi0EEE", !51, i64 0, !10, i64 16}
!51 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_14ChangeListenerENS_20DummyCriticalSectionEEE", !52, i64 0, !10, i64 8}
!52 = !{!"_ZTSN4juce9HeapBlockIPNS_14ChangeListenerELb0EEE", !6, i64 0}
!53 = !{!"_ZTSN4juce5TimerE", !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24}
!54 = !{!"float", !7, i64 0}
!55 = !{!"_ZTSN4juce21MidiKeyboardComponent11OrientationE", !7, i64 0}
!56 = !{!"_ZTSN4juce5ArrayIiNS_20DummyCriticalSectionELi0EEE", !57, i64 0, !10, i64 16}
!57 = !{!"_ZTSN4juce19ArrayAllocationBaseIiNS_20DummyCriticalSectionEEE", !58, i64 0, !10, i64 8}
!58 = !{!"_ZTSN4juce9HeapBlockIiLb0EEE", !6, i64 0}
!59 = !{!"_ZTSN4juce10BigIntegerE", !60, i64 0, !7, i64 8, !61, i64 24, !10, i64 32, !12, i64 36}
!60 = !{!"_ZTSN4juce9HeapBlockIjLb0EEE", !6, i64 0}
!61 = !{!"long", !7, i64 0}
!62 = !{!"_ZTSN4juce13ScopedPointerINS_6ButtonEEE", !6, i64 0}
!63 = !{!"_ZTSN4juce5ArrayINS_8KeyPressENS_20DummyCriticalSectionELi0EEE", !64, i64 0, !10, i64 16}
!64 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_8KeyPressENS_20DummyCriticalSectionEEE", !65, i64 0, !10, i64 8}
!65 = !{!"_ZTSN4juce9HeapBlockINS_8KeyPressELb0EEE", !6, i64 0}
!66 = !{!54, !54, i64 0}
!67 = !{!18, !55, i64 316}
!68 = !{!18, !10, i64 472}


; 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.153 }
%union.anon.153 = type { i32 }
%"class.juce::String" = type { %"class.juce::CharPointer_UTF8" }
%"class.juce::CharPointer_UTF8" = type { ptr }
%"class.juce::Font" = type { %"class.juce::ReferenceCountedObjectPtr.86" }
%"class.juce::ReferenceCountedObjectPtr.86" = type { ptr }
%"class.juce::Justification" = type { i32 }

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nounwind
declare void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

; 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 void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) unnamed_addr #2 align 2

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

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

; Function Attrs: nounwind
declare noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #1

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

declare void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind writable sret(%"class.juce::Colour") align 1, ptr noundef nonnull align 8 dereferenceable(197), i32 noundef, i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNK4juce6Colour13isTransparentEv(ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4juce21MidiKeyboardComponent13drawWhiteNoteEiRNS_8GraphicsEiiiibbRKNS_6ColourES5_(ptr noundef nonnull align 8 dereferenceable(560) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(17) %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i1 noundef zeroext %7, i1 noundef zeroext %8, ptr noundef nonnull align 1 dereferenceable(4) %9, ptr noundef nonnull align 1 dereferenceable(4) %10) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %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::String", align 8
  %18 = alloca %"class.juce::Colour", align 1
  %19 = alloca %"class.juce::Font", align 8
  %20 = alloca %"class.juce::Font", align 8
  %21 = alloca %"class.juce::Justification", align 4
  %22 = alloca %"class.juce::Justification", align 4
  %23 = alloca %"class.juce::Justification", align 4
  %24 = alloca %"class.juce::Colour", align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %12, ptr noundef nonnull align 1 dereferenceable(4) @_ZN4juce7Colours16transparentWhiteE) #6
  br i1 %7, label %25, label %30

25:                                               ; preds = %11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %13, ptr noundef nonnull align 8 dereferenceable(197) %0, i32 noundef 16797700, i1 noundef zeroext false)
          to label %26 unwind label %28

26:                                               ; preds = %25
  %27 = call noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %12, ptr noundef nonnull align 1 dereferenceable(4) %13) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br label %30

28:                                               ; preds = %25
  %29 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br label %128

30:                                               ; preds = %26, %11
  br i1 %8, label %31, label %36

31:                                               ; preds = %30
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  invoke void @_ZNK4juce9Component10findColourEib(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %15, ptr noundef nonnull align 8 dereferenceable(197) %0, i32 noundef 16797699, i1 noundef zeroext false)
          to label %32 unwind label %34

32:                                               ; preds = %31
  call void @_ZNK4juce6Colour12overlaidWithES0_(ptr dead_on_unwind nonnull writable sret(%"class.juce::Colour") align 1 %14, ptr noundef nonnull align 1 dereferenceable(4) %12, ptr noundef nonnull %15) #6
  %33 = call noundef nonnull align 1 dereferenceable(4) ptr @_ZN4juce6ColouraSERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %12, ptr noundef nonnull align 1 dereferenceable(4) %14) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %14) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %36

34:                                               ; preds = %31
  %35 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %128

36:                                               ; preds = %32, %30
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %16, ptr noundef nonnull align 1 dereferenceable(4) %12) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull %16)
          to label %37 unwind label %55

37:                                               ; preds = %36
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %16) #6
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6)
          to label %38 unwind label %57

38:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %39 = load ptr, ptr %0, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %39, i64 400
  %41 = load ptr, ptr %40, align 8
  invoke void %41(ptr dead_on_unwind nonnull writable sret(%"class.juce::String") align 8 %17, ptr noundef nonnull align 8 dereferenceable(560) %0, i32 noundef %1)
          to label %42 unwind label %59

42:                                               ; preds = %38
  %43 = call noundef zeroext i1 @_ZNK4juce6String10isNotEmptyEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br i1 %43, label %44, label %92

44:                                               ; preds = %42
  %45 = getelementptr inbounds i8, ptr %0, i64 312
  %46 = load float, ptr %45, align 8, !tbaa !8
  %47 = fmul float %46, 0x3FECCCCCC0000000
  %48 = call noundef float @_ZN4juce4jminIfEET_S1_S1_(float noundef 1.200000e+01, float noundef %47)
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %18, ptr noundef nonnull align 1 dereferenceable(4) %10) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull %18)
          to label %49 unwind label %63

49:                                               ; preds = %44
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  invoke void @_ZN4juce4FontC1Efi(ptr noundef nonnull align 8 dereferenceable(8) %20, float noundef %48, i32 noundef 0)
          to label %50 unwind label %65

50:                                               ; preds = %49
  invoke void @_ZNK4juce4Font19withHorizontalScaleEf(ptr dead_on_unwind nonnull writable sret(%"class.juce::Font") align 8 %19, ptr noundef nonnull align 8 dereferenceable(8) %20, float noundef 0x3FE99999A0000000)
          to label %51 unwind label %67

51:                                               ; preds = %50
  invoke void @_ZN4juce8Graphics7setFontERKNS_4FontE(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %52 unwind label %69

52:                                               ; preds = %51
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  %53 = getelementptr inbounds i8, ptr %0, i64 316
  %54 = load i32, ptr %53, align 4, !tbaa !61
  switch i32 %54, label %92 [
    i32 0, label %73
    i32 1, label %77
    i32 2, label %82
  ]

55:                                               ; preds = %36
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %16) #6
  br label %128

57:                                               ; preds = %37
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %128

59:                                               ; preds = %38
  %60 = landingpad { ptr, i32 }
          cleanup
  br label %127

61:                                               ; preds = %.invoke
  %62 = landingpad { ptr, i32 }
          cleanup
  br label %126

63:                                               ; preds = %44
  %64 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %18) #6
  br label %126

65:                                               ; preds = %49
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %72

67:                                               ; preds = %50
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %71

69:                                               ; preds = %51
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br label %71

71:                                               ; preds = %69, %67
  %.pn = phi { ptr, i32 } [ %70, %69 ], [ %68, %67 ]
  call void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  br label %72

72:                                               ; preds = %71, %65
  %.pn.pn = phi { ptr, i32 } [ %.pn, %71 ], [ %66, %65 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  br label %126

73:                                               ; preds = %52
  %74 = add nsw i32 %3, 1
  %75 = add nsw i32 %5, -1
  %76 = add nsw i32 %6, -2
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %21, i32 noundef 20) #6
  br label %.invoke

77:                                               ; preds = %52
  %78 = add nsw i32 %3, 2
  %79 = add nsw i32 %4, 2
  %80 = add nsw i32 %5, -4
  %81 = add nsw i32 %6, -4
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %22, i32 noundef 33) #6
  br label %.invoke

82:                                               ; preds = %52
  %83 = add nsw i32 %3, 2
  %84 = add nsw i32 %4, 2
  %85 = add nsw i32 %5, -4
  %86 = add nsw i32 %6, -4
  call void @_ZN4juce13JustificationC2Ei(ptr noundef nonnull align 4 dereferenceable(4) %23, i32 noundef 34) #6
  br label %.invoke

.invoke:                                          ; preds = %73, %77, %82
  %87 = phi i32 [ %83, %82 ], [ %78, %77 ], [ %74, %73 ]
  %88 = phi i32 [ %84, %82 ], [ %79, %77 ], [ %4, %73 ]
  %89 = phi i32 [ %85, %82 ], [ %80, %77 ], [ %75, %73 ]
  %90 = phi i32 [ %86, %82 ], [ %81, %77 ], [ %76, %73 ]
  %91 = phi ptr [ %23, %82 ], [ %22, %77 ], [ %21, %73 ]
  invoke void @_ZNK4juce8Graphics8drawTextERKNS_6StringEiiiiNS_13JustificationEb(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull align 8 dereferenceable(8) %17, i32 noundef %87, i32 noundef %88, i32 noundef %89, i32 noundef %90, ptr noundef nonnull %91, i1 noundef zeroext false)
          to label %92 unwind label %61

92:                                               ; preds = %.invoke, %52, %42
  %93 = call noundef zeroext i1 @_ZNK4juce6Colour13isTransparentEv(ptr noundef nonnull align 1 dereferenceable(4) %9) #6
  br i1 %93, label %125, label %94

94:                                               ; preds = %92
  call void @_ZN4juce6ColourC1ERKS0_(ptr noundef nonnull align 1 dereferenceable(4) %24, ptr noundef nonnull align 1 dereferenceable(4) %9) #6
  invoke void @_ZN4juce8Graphics9setColourENS_6ColourE(ptr noundef nonnull align 8 dereferenceable(17) %2, ptr noundef nonnull %24)
          to label %95 unwind label %98

95:                                               ; preds = %94
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  %96 = getelementptr inbounds i8, ptr %0, i64 316
  %97 = load i32, ptr %96, align 4, !tbaa !61
  switch i32 %97, label %109 [
    i32 0, label %100
    i32 1, label %.invoke76
    i32 2, label %103
  ]

98:                                               ; preds = %94
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %24) #6
  br label %126

100:                                              ; preds = %95
  br label %.invoke76

101:                                              ; preds = %.invoke76, %.invoke75
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %126

103:                                              ; preds = %95
  %104 = add i32 %4, -1
  %105 = add i32 %104, %6
  br label %.invoke76

.invoke76:                                        ; preds = %95, %100, %103
  %106 = phi i32 [ %105, %103 ], [ %4, %100 ], [ %4, %95 ]
  %107 = phi i32 [ %5, %103 ], [ 1, %100 ], [ %5, %95 ]
  %108 = phi i32 [ 1, %103 ], [ %6, %100 ], [ %97, %95 ]
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %2, i32 noundef %3, i32 noundef %106, i32 noundef %107, i32 noundef %108)
          to label %109 unwind label %101

109:                                              ; preds = %.invoke76, %95
  %110 = getelementptr inbounds i8, ptr %0, i64 472
  %111 = load i32, ptr %110, align 8, !tbaa !62
  %112 = icmp eq i32 %111, %1
  br i1 %112, label %113, label %125

113:                                              ; preds = %109
  %114 = load i32, ptr %96, align 4, !tbaa !61
  switch i32 %114, label %125 [
    i32 0, label %115
    i32 1, label %117
    i32 2, label %119
  ]

115:                                              ; preds = %113
  %116 = add nsw i32 %5, %3
  br label %.invoke75

117:                                              ; preds = %113
  %118 = add nsw i32 %6, %4
  br label %.invoke75

119:                                              ; preds = %113
  %120 = add nsw i32 %4, -1
  br label %.invoke75

.invoke75:                                        ; preds = %115, %117, %119
  %121 = phi i32 [ %3, %119 ], [ %3, %117 ], [ %116, %115 ]
  %122 = phi i32 [ %120, %119 ], [ %118, %117 ], [ %4, %115 ]
  %123 = phi i32 [ %5, %119 ], [ %5, %117 ], [ 1, %115 ]
  %124 = phi i32 [ 1, %119 ], [ 1, %117 ], [ %6, %115 ]
  invoke void @_ZNK4juce8Graphics8fillRectEiiii(ptr noundef nonnull align 8 dereferenceable(17) %2, i32 noundef %121, i32 noundef %122, i32 noundef %123, i32 noundef %124)
          to label %125 unwind label %101

125:                                              ; preds = %.invoke75, %109, %113, %92
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  ret void

126:                                              ; preds = %61, %63, %72, %101, %98
  %.pn71 = phi { ptr, i32 } [ %102, %101 ], [ %99, %98 ], [ %62, %61 ], [ %.pn.pn, %72 ], [ %64, %63 ]
  call void @_ZN4juce6StringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br label %127

127:                                              ; preds = %126, %59
  %.pn71.pn = phi { ptr, i32 } [ %.pn71, %126 ], [ %60, %59 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br label %128

128:                                              ; preds = %127, %57, %55, %34, %28
  %.pn71.pn.pn = phi { ptr, i32 } [ %.pn71.pn, %127 ], [ %58, %57 ], [ %56, %55 ], [ %35, %34 ], [ %29, %28 ]
  call void @_ZN4juce6ColourD1Ev(ptr noundef nonnull align 1 dereferenceable(4) %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  resume { ptr, i32 } %.pn71.pn.pn
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4juce6String10isNotEmptyEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

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

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

declare void @_ZN4juce4FontC1Efi(ptr noundef nonnull align 8 dereferenceable(8), float noundef, i32 noundef) unnamed_addr #3

declare void @_ZNK4juce4Font19withHorizontalScaleEf(ptr dead_on_unwind writable sret(%"class.juce::Font") align 8, ptr noundef nonnull align 8 dereferenceable(8), float noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare void @_ZN4juce4FontD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 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 #5 = { 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 #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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !48, i64 312}
!9 = !{!"_ZTSN4juce21MidiKeyboardComponentE", !10, i64 0, !38, i64 200, !39, i64 208, !47, i64 264, !14, i64 296, !48, i64 304, !18, i64 308, !48, i64 312, !49, i64 316, !18, i64 320, !18, i64 324, !48, i64 328, !50, i64 336, !50, i64 360, !53, i64 384, !53, i64 424, !56, i64 464, !18, i64 468, !18, i64 472, !48, i64 476, !56, i64 480, !56, i64 481, !56, i64 482, !57, i64 488, !57, i64 496, !58, i64 504, !50, i64 528, !18, i64 552, !18, i64 556}
!10 = !{!"_ZTSN4juce9ComponentE", !11, i64 0, !12, i64 8, !12, i64 16, !14, i64 24, !16, i64 32, !19, i64 48, !20, i64 56, !21, i64 64, !14, i64 88, !24, i64 96, !14, i64 104, !25, i64 112, !26, i64 120, !27, i64 128, !28, i64 136, !32, i64 160, !36, i64 184, !15, i64 192, !15, i64 196}
!11 = !{!"_ZTSN4juce13MouseListenerE"}
!12 = !{!"_ZTSN4juce6StringE", !13, i64 0}
!13 = !{!"_ZTSN4juce16CharPointer_UTF8E", !14, i64 0}
!14 = !{!"any pointer", !15, i64 0}
!15 = !{!"omnipotent char", !7, i64 0}
!16 = !{!"_ZTSN4juce9RectangleIiEE", !17, i64 0, !18, i64 8, !18, i64 12}
!17 = !{!"_ZTSN4juce5PointIiEE", !18, i64 0, !18, i64 4}
!18 = !{!"int", !15, i64 0}
!19 = !{!"_ZTSN4juce13ScopedPointerINS_9Component10PositionerEEE", !14, i64 0}
!20 = !{!"_ZTSN4juce13ScopedPointerINS_15AffineTransformEEE", !14, i64 0}
!21 = !{!"_ZTSN4juce5ArrayIPNS_9ComponentENS_20DummyCriticalSectionELi0EEE", !22, i64 0, !18, i64 16}
!22 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_9ComponentENS_20DummyCriticalSectionEEE", !23, i64 0, !18, i64 8}
!23 = !{!"_ZTSN4juce9HeapBlockIPNS_9ComponentELb0EEE", !14, i64 0}
!24 = !{!"_ZTSN4juce11MouseCursorE", !14, i64 0}
!25 = !{!"_ZTSN4juce13ScopedPointerINS_20CachedComponentImageEEE", !14, i64 0}
!26 = !{!"_ZTSN4juce13ScopedPointerINS_9Component17MouseListenerListEEE", !14, i64 0}
!27 = !{!"_ZTSN4juce13ScopedPointerINS_5ArrayIPNS_11KeyListenerENS_20DummyCriticalSectionELi0EEEEE", !14, i64 0}
!28 = !{!"_ZTSN4juce12ListenerListINS_17ComponentListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !29, i64 0}
!29 = !{!"_ZTSN4juce5ArrayIPNS_17ComponentListenerENS_20DummyCriticalSectionELi0EEE", !30, i64 0, !18, i64 16}
!30 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_17ComponentListenerENS_20DummyCriticalSectionEEE", !31, i64 0, !18, i64 8}
!31 = !{!"_ZTSN4juce9HeapBlockIPNS_17ComponentListenerELb0EEE", !14, i64 0}
!32 = !{!"_ZTSN4juce13NamedValueSetE", !33, i64 0}
!33 = !{!"_ZTSN4juce5ArrayINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionELi0EEE", !34, i64 0, !18, i64 16}
!34 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_13NamedValueSet10NamedValueENS_20DummyCriticalSectionEEE", !35, i64 0, !18, i64 8}
!35 = !{!"_ZTSN4juce9HeapBlockINS_13NamedValueSet10NamedValueELb0EEE", !14, i64 0}
!36 = !{!"_ZTSN4juce13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE6MasterE", !37, i64 0}
!37 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_13WeakReferenceINS_9ComponentENS_22ReferenceCountedObjectEE13SharedPointerEEE", !14, i64 0}
!38 = !{!"_ZTSN4juce25MidiKeyboardStateListenerE"}
!39 = !{!"_ZTSN4juce17ChangeBroadcasterE", !40, i64 8, !43, i64 32}
!40 = !{!"_ZTSN4juce17ChangeBroadcaster25ChangeBroadcasterCallbackE", !41, i64 0, !14, i64 16}
!41 = !{!"_ZTSN4juce12AsyncUpdaterE", !42, i64 8}
!42 = !{!"_ZTSN4juce25ReferenceCountedObjectPtrINS_12AsyncUpdater19AsyncUpdaterMessageEEE", !14, i64 0}
!43 = !{!"_ZTSN4juce12ListenerListINS_14ChangeListenerENS_5ArrayIPS1_NS_20DummyCriticalSectionELi0EEEEE", !44, i64 0}
!44 = !{!"_ZTSN4juce5ArrayIPNS_14ChangeListenerENS_20DummyCriticalSectionELi0EEE", !45, i64 0, !18, i64 16}
!45 = !{!"_ZTSN4juce19ArrayAllocationBaseIPNS_14ChangeListenerENS_20DummyCriticalSectionEEE", !46, i64 0, !18, i64 8}
!46 = !{!"_ZTSN4juce9HeapBlockIPNS_14ChangeListenerELb0EEE", !14, i64 0}
!47 = !{!"_ZTSN4juce5TimerE", !18, i64 8, !18, i64 12, !14, i64 16, !14, i64 24}
!48 = !{!"float", !15, i64 0}
!49 = !{!"_ZTSN4juce21MidiKeyboardComponent11OrientationE", !15, i64 0}
!50 = !{!"_ZTSN4juce5ArrayIiNS_20DummyCriticalSectionELi0EEE", !51, i64 0, !18, i64 16}
!51 = !{!"_ZTSN4juce19ArrayAllocationBaseIiNS_20DummyCriticalSectionEEE", !52, i64 0, !18, i64 8}
!52 = !{!"_ZTSN4juce9HeapBlockIiLb0EEE", !14, i64 0}
!53 = !{!"_ZTSN4juce10BigIntegerE", !54, i64 0, !15, i64 8, !55, i64 24, !18, i64 32, !56, i64 36}
!54 = !{!"_ZTSN4juce9HeapBlockIjLb0EEE", !14, i64 0}
!55 = !{!"long", !15, i64 0}
!56 = !{!"bool", !15, i64 0}
!57 = !{!"_ZTSN4juce13ScopedPointerINS_6ButtonEEE", !14, i64 0}
!58 = !{!"_ZTSN4juce5ArrayINS_8KeyPressENS_20DummyCriticalSectionELi0EEE", !59, i64 0, !18, i64 16}
!59 = !{!"_ZTSN4juce19ArrayAllocationBaseINS_8KeyPressENS_20DummyCriticalSectionEEE", !60, i64 0, !18, i64 8}
!60 = !{!"_ZTSN4juce9HeapBlockINS_8KeyPressELb0EEE", !14, i64 0}
!61 = !{!9, !49, i64 316}
!62 = !{!9, !18, i64 472}


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