Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
Clojure
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Helion
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 19.1.0
clang 20.1.0
clang 21.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
hexagon-clang 16.0.5
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 19.1.0
llc 20.1.0
llc 21.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 19.1.0
opt 20.1.0
opt 21.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
; ModuleID = 'reg.ll' source_filename = "reg.cpp" target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32" target triple = "aarch64-w64-windows-gnu" %"struct.llvm::EVT" = type { %"class.llvm::MVT", ptr } %"class.llvm::MVT" = type { i16 } %"class.llvm::SDLoc" = type <{ %"class.llvm::DebugLoc", i32, [4 x i8] }> %"class.llvm::DebugLoc" = type { %"class.llvm::TypedTrackingMDRef" } %"class.llvm::TypedTrackingMDRef" = type { %"class.llvm::TrackingMDRef" } %"class.llvm::TrackingMDRef" = type { ptr } %"class.llvm::TypeSize" = type { %"class.llvm::details::FixedOrScalableQuantity.base", [7 x i8] } %"class.llvm::details::FixedOrScalableQuantity.base" = type <{ i64, i8 }> %"class.llvm::SmallVector.177" = type { %"class.llvm::SmallVectorImpl.112", %"struct.llvm::SmallVectorStorage.178" } %"class.llvm::SmallVectorImpl.112" = type { %"class.llvm::SmallVectorTemplateBase.113" } %"class.llvm::SmallVectorTemplateBase.113" = type { %"class.llvm::SmallVectorTemplateCommon.114" } %"class.llvm::SmallVectorTemplateCommon.114" = type { %"class.llvm::SmallVectorBase" } %"class.llvm::SmallVectorBase" = type { ptr, i32, i32 } %"struct.llvm::SmallVectorStorage.178" = type { [128 x i8] } %"class.llvm::SDValue" = type <{ ptr, i32, [4 x i8] }> @_ZZNK4llvm3MVT23getVectorMinNumElementsEvE10NElemTable = external dso_local local_unnamed_addr constant <{ [190 x i16], [53 x i16] }>, align 2 @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable = external dso_local local_unnamed_addr constant <{ [190 x i16], [53 x i16] }>, align 2 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #0 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #0 ; Function Attrs: mustprogress nounwind uwtable declare hidden fastcc void @_ZN12_GLOBAL__N_111DAGCombiner13AddToWorklistEPN4llvm6SDNodeEbb(ptr noundef nonnull align 8 dereferenceable(956), ptr noundef, i1 noundef, i1 noundef) unnamed_addr #1 declare dso_local noundef i1 @_ZN4llvm14isNullConstantENS_7SDValueE([2 x i64]) local_unnamed_addr #2 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(880), i32 noundef, ptr noundef nonnull align 8 dereferenceable(12), [2 x i64], [2 x i64], [2 x i64]) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) declare dso_local void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #3 ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) declare dso_local noundef i1 @_ZNK4llvm3EVT24isExtendedScalableVectorEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880), i32 noundef, ptr noundef nonnull align 8 dereferenceable(12), [2 x i64], [2 x i64]) local_unnamed_addr #2 declare dso_local void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_8ArrayRefINS_7SDValueEEE(ptr noundef nonnull align 8 dereferenceable(880), i32 noundef, ptr noundef nonnull align 8 dereferenceable(12), [2 x i64], [2 x i64]) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind uwtable define hidden fastcc [2 x i64] @_ZN12_GLOBAL__N_111DAGCombiner21visitINSERT_SUBVECTOREPN4llvm6SDNodeE(ptr noundef nonnull align 8 dereferenceable(956) %this, ptr noundef %N) unnamed_addr #1 { entry: %VT = alloca %"struct.llvm::EVT", align 8 %SrcVT = alloca %"struct.llvm::EVT", align 16 %ref.tmp = alloca %"class.llvm::SDLoc", align 8 %ref.tmp43 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp76 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp98 = alloca %"struct.llvm::EVT", align 16 %ref.tmp108 = alloca %"struct.llvm::EVT", align 16 %CN0VT = alloca %"struct.llvm::EVT", align 16 %CN1VT = alloca %"struct.llvm::EVT", align 16 %ref.tmp157 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp194 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp219 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp242 = alloca %"struct.llvm::EVT", align 16 %N1SrcSVT = alloca %"struct.llvm::EVT", align 8 %ref.tmp245 = alloca %"struct.llvm::EVT", align 16 %ref.tmp253 = alloca %"struct.llvm::EVT", align 16 %ref.tmp257 = alloca %"struct.llvm::EVT", align 16 %DL = alloca %"class.llvm::SDLoc", align 8 %ref.tmp268 = alloca %"class.llvm::TypeSize", align 8 %ref.tmp275 = alloca %"class.llvm::TypeSize", align 8 %ref.tmp292 = alloca %"class.llvm::TypeSize", align 8 %ref.tmp301 = alloca %"class.llvm::TypeSize", align 8 %ref.tmp390 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp400 = alloca %"class.llvm::SDLoc", align 8 %ref.tmp428 = alloca %"struct.llvm::EVT", align 16 %ref.tmp433 = alloca %"struct.llvm::EVT", align 8 %ref.tmp440 = alloca %"struct.llvm::EVT", align 8 %Ops = alloca %"class.llvm::SmallVector.177", align 8 %ref.tmp450 = alloca %"class.llvm::SDLoc", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %VT) #6 %ValueList.i = getelementptr inbounds nuw i8, ptr %N, i64 48 %0 = load ptr, ptr %ValueList.i, align 8, !tbaa !4 %retval.sroa.0.0.copyload.i = load i64, ptr %0, align 8 %retval.sroa.2.0.arrayidx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 %retval.sroa.2.0.copyload.i = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i, align 8, !tbaa !24 store i64 %retval.sroa.0.0.copyload.i, ptr %VT, align 8 %call.fca.1.gep = getelementptr inbounds nuw i8, ptr %VT, i64 8 store i64 %retval.sroa.2.0.copyload.i, ptr %call.fca.1.gep, align 8 %OperandList.i = getelementptr inbounds nuw i8, ptr %N, i64 40 %1 = load ptr, ptr %OperandList.i, align 8, !tbaa !26 %N0.sroa.0.0.copyload = load ptr, ptr %1, align 8, !tbaa !27 %N0.sroa.35.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %N0.sroa.35.0.copyload = load i64, ptr %N0.sroa.35.0..sroa_idx, align 8 %arrayidx.i = getelementptr inbounds nuw i8, ptr %1, i64 40 %N1.sroa.0.0.copyload = load ptr, ptr %arrayidx.i, align 8, !tbaa !27 %N1.sroa.39.0.arrayidx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 48 %N1.sroa.39.0.copyload = load i64, ptr %N1.sroa.39.0.arrayidx.i.sroa_idx, align 8 %arrayidx.i887 = getelementptr inbounds nuw i8, ptr %1, i64 80 %N2.sroa.0.0.copyload = load ptr, ptr %arrayidx.i887, align 8, !tbaa !27 %N2.sroa.15.0.arrayidx.i887.sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 88 %N2.sroa.15.0.copyload = load i64, ptr %N2.sroa.15.0.arrayidx.i887.sroa_idx, align 8 %Value.i.i = getelementptr inbounds nuw i8, ptr %N2.sroa.0.0.copyload, i64 88 %2 = load ptr, ptr %Value.i.i, align 8, !tbaa !29 %Val.i.i.i = getelementptr inbounds nuw i8, ptr %2, i64 24 %BitWidth.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %2, i64 32 %3 = load i32, ptr %BitWidth.i.i.i.i.i, align 8, !tbaa !32 %cmp.i.i.i.i.i = icmp ult i32 %3, 65 %4 = load ptr, ptr %Val.i.i.i, align 8 %retval.0.in.i.i.i.i = select i1 %cmp.i.i.i.i.i, ptr %Val.i.i.i, ptr %4 %retval.0.i.i.i.i = load i64, ptr %retval.0.in.i.i.i.i, align 8, !tbaa !34 %NodeType.i.i = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 24 %5 = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 %6 = add i32 %5, -51 %spec.select.i.i = icmp ult i32 %6, 2 br i1 %spec.select.i.i, label %cleanup463, label %if.end if.end: ; preds = %entry %NodeType.i.i888 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 24 %7 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 %8 = add i32 %7, -51 %spec.select.i.i889 = icmp ult i32 %8, 2 %cmp = icmp eq i32 %5, 162 %or.cond = and i1 %cmp, %spec.select.i.i889 br i1 %or.cond, label %land.lhs.true9, label %if.end53 land.lhs.true9: ; preds = %if.end %OperandList.i.i891 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %9 = load ptr, ptr %OperandList.i.i891, align 8, !tbaa !26 %arrayidx.i.i892 = getelementptr inbounds nuw i8, ptr %9, i64 40 %10 = load ptr, ptr %arrayidx.i.i892, align 8, !tbaa !36 %cmp.i = icmp eq ptr %10, %N2.sroa.0.0.copyload %ResNo.i = getelementptr inbounds nuw i8, ptr %9, i64 48 %11 = load i32, ptr %ResNo.i, align 8 %N2.sroa.15.8.extract.trunc = trunc i64 %N2.sroa.15.0.copyload to i32 %cmp4.i = icmp eq i32 %11, %N2.sroa.15.8.extract.trunc %12 = select i1 %cmp.i, i1 %cmp4.i, i1 false br i1 %12, label %if.then12, label %land.lhs.true56 if.then12: ; preds = %land.lhs.true9 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %SrcVT) #6 %13 = load ptr, ptr %9, align 8, !tbaa !36 %ResNo.i895 = getelementptr inbounds nuw i8, ptr %9, i64 8 %14 = load i32, ptr %ResNo.i895, align 8, !tbaa !38 %ValueList.i.i = getelementptr inbounds nuw i8, ptr %13, i64 48 %15 = load ptr, ptr %ValueList.i.i, align 8, !tbaa !4 %idxprom.i.i = zext i32 %14 to i64 %arrayidx.i.i896 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %15, i64 %idxprom.i.i %call14.fca.1.gep = getelementptr inbounds nuw i8, ptr %SrcVT, i64 8 %16 = load <2 x i64>, ptr %arrayidx.i.i896, align 8 store <2 x i64> %16, ptr %SrcVT, align 16 %17 = extractelement <2 x i64> %16, i64 0 %18 = trunc i64 %17 to i16 %19 = trunc i64 %retval.sroa.0.0.copyload.i to i16 %cmp.not.i.i = icmp eq i16 %18, %19 br i1 %cmp.not.i.i, label %if.end.i.i, label %if.end18 if.end.i.i: ; preds = %if.then12 %cmp8.i.i = icmp ne i16 %18, 0 %20 = extractelement <2 x i64> %16, i64 1 %cmp11.i.i = icmp eq i64 %20, %retval.sroa.2.0.copyload.i %or.cond1705 = select i1 %cmp8.i.i, i1 true, i1 %cmp11.i.i br i1 %or.cond1705, label %if.then16, label %if.end18 if.then16: ; preds = %if.end.i.i %retval.sroa.0.0.copyload = load ptr, ptr %9, align 8, !tbaa !27 %retval.sroa.17.0.copyload = load i64, ptr %ResNo.i895, align 8 br label %cleanup463.critedge if.end18: ; preds = %if.end.i.i, %if.then12 %21 = ptrtoint ptr %N2.sroa.0.0.copyload to i64 %.fca.0.insert842 = insertvalue [2 x i64] poison, i64 %21, 0 %.fca.1.insert845 = insertvalue [2 x i64] %.fca.0.insert842, i64 %N2.sroa.15.0.copyload, 1 %call20 = tail call noundef i1 @_ZN4llvm14isNullConstantENS_7SDValueE([2 x i64] %.fca.1.insert845) #6 br i1 %call20, label %if.then21, label %cleanup if.then21: ; preds = %if.end18 %.fca.0.insert836 = insertvalue [2 x i64] poison, i64 %17, 0 %22 = extractelement <2 x i64> %16, i64 1 %.fca.1.insert839 = insertvalue [2 x i64] %.fca.0.insert836, i64 %22, 1 %call23 = call noundef i1 @_ZNK4llvm3EVT11knownBitsGEES0_(ptr noundef nonnull align 8 dereferenceable(16) %VT, [2 x i64] %.fca.1.insert839) br i1 %call23, label %land.lhs.true24, label %if.else land.lhs.true24: ; preds = %if.then21 %23 = load i16, ptr %VT, align 8, !tbaa !39 %cmp.i.not.i = icmp eq i16 %23, 0 br i1 %cmp.i.not.i, label %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit, label %cond.true.i cond.true.i: ; preds = %land.lhs.true24 %24 = add i16 %23, -17 %spec.select.i.i899 = icmp ult i16 %24, 121 br i1 %spec.select.i.i899, label %land.lhs.true26, label %if.then28 _ZNK4llvm3EVT19isFixedLengthVectorEv.exit: ; preds = %land.lhs.true24 %call3.i = call noundef i1 @_ZNK4llvm3EVT27isExtendedFixedLengthVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) #7 br i1 %call3.i, label %land.lhs.true26, label %if.then28 land.lhs.true26: ; preds = %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit, %cond.true.i %25 = load i16, ptr %SrcVT, align 16, !tbaa !39 %cmp.i.not.i900 = icmp eq i16 %25, 0 br i1 %cmp.i.not.i900, label %_ZNK4llvm3EVT16isScalableVectorEv.exit, label %cond.true.i901 cond.true.i901: ; preds = %land.lhs.true26 %26 = add i16 %25, -138 %spec.select.i.i902 = icmp ult i16 %26, 53 br i1 %spec.select.i.i902, label %if.else, label %if.then28 _ZNK4llvm3EVT16isScalableVectorEv.exit: ; preds = %land.lhs.true26 %call3.i905 = call noundef i1 @_ZNK4llvm3EVT24isExtendedScalableVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %SrcVT) #7 br i1 %call3.i905, label %if.else, label %if.then28 if.then28: ; preds = %_ZNK4llvm3EVT16isScalableVectorEv.exit, %cond.true.i901, %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit, %cond.true.i %27 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp) #6 %debugLoc.i.i = getelementptr inbounds nuw i8, ptr %N, i64 72 %28 = load ptr, ptr %debugLoc.i.i, align 8, !tbaa !72 store ptr %28, ptr %ref.tmp, align 8, !tbaa !72 %tobool.not.i.i.i.i.i = icmp eq ptr %28, null br i1 %tobool.not.i.i.i.i.i, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %if.then28 %call.i.i.i.i.i.i = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp, ptr noundef nonnull align 4 dereferenceable(8) %28, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit: ; preds = %if.then.i.i.i.i.i, %if.then28 %IROrder.i = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 %IROrder.i.i = getelementptr inbounds nuw i8, ptr %N, i64 68 %29 = load i32, ptr %IROrder.i.i, align 4, !tbaa !73 store i32 %29, ptr %IROrder.i, align 8, !tbaa !74 %agg.tmp29.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp29.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %30 = ptrtoint ptr %N0.sroa.0.0.copyload to i64 %31 = load ptr, ptr %OperandList.i.i891, align 8, !tbaa !26 %agg.tmp31.sroa.0.0.copyload = load i64, ptr %31, align 8, !tbaa !27 %agg.tmp31.sroa.2.0.call32.sroa_idx = getelementptr inbounds nuw i8, ptr %31, i64 8 %agg.tmp31.sroa.2.0.copyload = load i64, ptr %agg.tmp31.sroa.2.0.call32.sroa_idx, align 8 %.fca.0.insert830 = insertvalue [2 x i64] poison, i64 %agg.tmp29.sroa.0.0.copyload, 0 %.fca.1.insert833 = insertvalue [2 x i64] %.fca.0.insert830, i64 %agg.tmp29.sroa.2.0.copyload, 1 %.fca.0.insert824 = insertvalue [2 x i64] poison, i64 %30, 0 %.fca.1.insert827 = insertvalue [2 x i64] %.fca.0.insert824, i64 %N0.sroa.35.0.copyload, 1 %.fca.0.insert818 = insertvalue [2 x i64] poison, i64 %agg.tmp31.sroa.0.0.copyload, 0 %.fca.1.insert821 = insertvalue [2 x i64] %.fca.0.insert818, i64 %agg.tmp31.sroa.2.0.copyload, 1 %call34 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %27, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp, [2 x i64] %.fca.1.insert833, [2 x i64] %.fca.1.insert827, [2 x i64] %.fca.1.insert821, [2 x i64] %.fca.1.insert845) #6 %call34.fca.0.extract = extractvalue [2 x i64] %call34, 0 %call34.fca.1.extract = extractvalue [2 x i64] %call34, 1 %32 = inttoptr i64 %call34.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1658 = and i64 %call34.fca.1.extract, 4294967295 %33 = load ptr, ptr %ref.tmp, align 8, !tbaa !72 %tobool.not.i.i.i.i.i908 = icmp eq ptr %33, null br i1 %tobool.not.i.i.i.i.i908, label %_ZN4llvm5SDLocD2Ev.exit, label %if.then.i.i.i.i.i909 if.then.i.i.i.i.i909: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp, ptr noundef nonnull align 4 dereferenceable(8) %33) #6 br label %_ZN4llvm5SDLocD2Ev.exit _ZN4llvm5SDLocD2Ev.exit: ; preds = %if.then.i.i.i.i.i909, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp) #6 br label %cleanup463.critedge if.else: ; preds = %_ZNK4llvm3EVT16isScalableVectorEv.exit, %cond.true.i901, %if.then21 %agg.tmp35.sroa.0.0.copyload = load i64, ptr %SrcVT, align 16 %agg.tmp35.sroa.2.0.copyload = load i64, ptr %call14.fca.1.gep, align 8, !tbaa !24 %.fca.0.insert806 = insertvalue [2 x i64] poison, i64 %agg.tmp35.sroa.0.0.copyload, 0 %.fca.1.insert809 = insertvalue [2 x i64] %.fca.0.insert806, i64 %agg.tmp35.sroa.2.0.copyload, 1 %call36 = call noundef i1 @_ZNK4llvm3EVT11knownBitsLEES0_(ptr noundef nonnull align 8 dereferenceable(16) %VT, [2 x i64] %.fca.1.insert809) br i1 %call36, label %land.lhs.true37, label %cleanup land.lhs.true37: ; preds = %if.else %34 = load i16, ptr %VT, align 8, !tbaa !39 %cmp.i.not.i910 = icmp eq i16 %34, 0 br i1 %cmp.i.not.i910, label %_ZNK4llvm3EVT16isScalableVectorEv.exit916, label %cond.true.i911 cond.true.i911: ; preds = %land.lhs.true37 %35 = add i16 %34, -138 %spec.select.i.i912 = icmp ult i16 %35, 53 br i1 %spec.select.i.i912, label %land.lhs.true39, label %if.then41 _ZNK4llvm3EVT16isScalableVectorEv.exit916: ; preds = %land.lhs.true37 %call3.i915 = call noundef i1 @_ZNK4llvm3EVT24isExtendedScalableVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) #7 br i1 %call3.i915, label %land.lhs.true39, label %if.then41 land.lhs.true39: ; preds = %_ZNK4llvm3EVT16isScalableVectorEv.exit916, %cond.true.i911 %36 = load i16, ptr %SrcVT, align 16, !tbaa !39 %cmp.i.not.i917 = icmp eq i16 %36, 0 br i1 %cmp.i.not.i917, label %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit923, label %cond.true.i918 cond.true.i918: ; preds = %land.lhs.true39 %37 = add i16 %36, -17 %spec.select.i.i919 = icmp ult i16 %37, 121 br i1 %spec.select.i.i919, label %cleanup, label %if.then41 _ZNK4llvm3EVT19isFixedLengthVectorEv.exit923: ; preds = %land.lhs.true39 %call3.i922 = call noundef i1 @_ZNK4llvm3EVT27isExtendedFixedLengthVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %SrcVT) #7 br i1 %call3.i922, label %cleanup, label %if.then41 if.then41: ; preds = %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit923, %cond.true.i918, %_ZNK4llvm3EVT16isScalableVectorEv.exit916, %cond.true.i911 %38 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp43) #6 %debugLoc.i.i924 = getelementptr inbounds nuw i8, ptr %N, i64 72 %39 = load ptr, ptr %debugLoc.i.i924, align 8, !tbaa !72 store ptr %39, ptr %ref.tmp43, align 8, !tbaa !72 %tobool.not.i.i.i.i.i925 = icmp eq ptr %39, null br i1 %tobool.not.i.i.i.i.i925, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit930, label %if.then.i.i.i.i.i926 if.then.i.i.i.i.i926: ; preds = %if.then41 %call.i.i.i.i.i.i927 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp43, ptr noundef nonnull align 4 dereferenceable(8) %39, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit930 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit930: ; preds = %if.then.i.i.i.i.i926, %if.then41 %IROrder.i928 = getelementptr inbounds nuw i8, ptr %ref.tmp43, i64 8 %IROrder.i.i929 = getelementptr inbounds nuw i8, ptr %N, i64 68 %40 = load i32, ptr %IROrder.i.i929, align 4, !tbaa !73 store i32 %40, ptr %IROrder.i928, align 8, !tbaa !74 %agg.tmp44.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp44.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %41 = load ptr, ptr %OperandList.i.i891, align 8, !tbaa !26 %agg.tmp45.sroa.0.0.copyload = load i64, ptr %41, align 8, !tbaa !27 %agg.tmp45.sroa.2.0.call46.sroa_idx = getelementptr inbounds nuw i8, ptr %41, i64 8 %agg.tmp45.sroa.2.0.copyload = load i64, ptr %agg.tmp45.sroa.2.0.call46.sroa_idx, align 8 %.fca.0.insert800 = insertvalue [2 x i64] poison, i64 %agg.tmp44.sroa.0.0.copyload, 0 %.fca.1.insert803 = insertvalue [2 x i64] %.fca.0.insert800, i64 %agg.tmp44.sroa.2.0.copyload, 1 %.fca.0.insert794 = insertvalue [2 x i64] poison, i64 %agg.tmp45.sroa.0.0.copyload, 0 %.fca.1.insert797 = insertvalue [2 x i64] %.fca.0.insert794, i64 %agg.tmp45.sroa.2.0.copyload, 1 %call48 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(880) %38, i32 noundef 162, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp43, [2 x i64] %.fca.1.insert803, [2 x i64] %.fca.1.insert797, [2 x i64] %.fca.1.insert845) #6 %call48.fca.0.extract = extractvalue [2 x i64] %call48, 0 %call48.fca.1.extract = extractvalue [2 x i64] %call48, 1 %42 = inttoptr i64 %call48.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1654 = and i64 %call48.fca.1.extract, 4294967295 %43 = load ptr, ptr %ref.tmp43, align 8, !tbaa !72 %tobool.not.i.i.i.i.i933 = icmp eq ptr %43, null br i1 %tobool.not.i.i.i.i.i933, label %_ZN4llvm5SDLocD2Ev.exit935, label %if.then.i.i.i.i.i934 if.then.i.i.i.i.i934: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit930 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp43, ptr noundef nonnull align 4 dereferenceable(8) %43) #6 br label %_ZN4llvm5SDLocD2Ev.exit935 _ZN4llvm5SDLocD2Ev.exit935: ; preds = %if.then.i.i.i.i.i934, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit930 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp43) #6 br label %cleanup463.critedge cleanup: ; preds = %_ZNK4llvm3EVT19isFixedLengthVectorEv.exit923, %cond.true.i918, %if.else, %if.end18 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %SrcVT) #6 %.pre = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 br label %if.end53 if.end53: ; preds = %cleanup, %if.end %44 = phi i32 [ %.pre, %cleanup ], [ %5, %if.end ] %cmp55 = icmp eq i32 %44, 162 br i1 %cmp55, label %land.lhs.true56, label %if.end63 land.lhs.true56: ; preds = %if.end53, %land.lhs.true9 %OperandList.i.i937 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %45 = load ptr, ptr %OperandList.i.i937, align 8, !tbaa !26 %46 = load ptr, ptr %45, align 8, !tbaa !36 %cmp.i939 = icmp eq ptr %46, %N0.sroa.0.0.copyload %ResNo.i940 = getelementptr inbounds nuw i8, ptr %45, i64 8 %47 = load i32, ptr %ResNo.i940, align 8 %N0.sroa.35.8.extract.trunc = trunc i64 %N0.sroa.35.0.copyload to i32 %cmp4.i942 = icmp eq i32 %47, %N0.sroa.35.8.extract.trunc %48 = select i1 %cmp.i939, i1 %cmp4.i942, i1 false br i1 %48, label %land.lhs.true59, label %if.end83 land.lhs.true59: ; preds = %land.lhs.true56 %arrayidx.i.i944 = getelementptr inbounds nuw i8, ptr %45, i64 40 %49 = load ptr, ptr %arrayidx.i.i944, align 8, !tbaa !36 %cmp.i945 = icmp eq ptr %49, %N2.sroa.0.0.copyload %ResNo.i946 = getelementptr inbounds nuw i8, ptr %45, i64 48 %50 = load i32, ptr %ResNo.i946, align 8 %N2.sroa.15.8.extract.trunc1537 = trunc i64 %N2.sroa.15.0.copyload to i32 %cmp4.i948 = icmp eq i32 %50, %N2.sroa.15.8.extract.trunc1537 %51 = select i1 %cmp.i945, i1 %cmp4.i948, i1 false br i1 %51, label %cleanup463, label %if.end83 if.end63: ; preds = %if.end53 %52 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 %53 = add i32 %52, -51 %spec.select.i.i950 = icmp ult i32 %53, 2 %cmp67 = icmp eq i32 %44, 169 %or.cond1706 = and i1 %cmp67, %spec.select.i.i950 br i1 %or.cond1706, label %if.then68, label %if.end83 if.then68: ; preds = %if.end63 %54 = load ptr, ptr %this, align 8, !tbaa !43 %OperandList.i.i952 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %55 = load ptr, ptr %OperandList.i.i952, align 8, !tbaa !26 %agg.tmp70.sroa.0.0.copyload = load i64, ptr %55, align 8, !tbaa !27 %agg.tmp70.sroa.2.0.call71.sroa_idx = getelementptr inbounds nuw i8, ptr %55, i64 8 %agg.tmp70.sroa.2.0.copyload = load i64, ptr %agg.tmp70.sroa.2.0.call71.sroa_idx, align 8 %.fca.0.insert782 = insertvalue [2 x i64] poison, i64 %agg.tmp70.sroa.0.0.copyload, 0 %.fca.1.insert785 = insertvalue [2 x i64] %.fca.0.insert782, i64 %agg.tmp70.sroa.2.0.copyload, 1 %call.i = call noundef i1 @_ZNK4llvm12SelectionDAG37isConstantIntBuildVectorOrConstantIntENS_7SDValueEb(ptr noundef nonnull align 8 dereferenceable(880) %54, [2 x i64] %.fca.1.insert785, i1 noundef true) #6 br i1 %call.i, label %if.then74, label %_ZNK4llvm12SelectionDAG24isConstantValueOfAnyTypeENS_7SDValueE.exit _ZNK4llvm12SelectionDAG24isConstantValueOfAnyTypeENS_7SDValueE.exit: ; preds = %if.then68 %call3.i954 = call noundef i1 @_ZNK4llvm12SelectionDAG35isConstantFPBuildVectorOrConstantFPENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %54, [2 x i64] %.fca.1.insert785) #6 br i1 %call3.i954, label %if.then74, label %lor.lhs.false lor.lhs.false: ; preds = %_ZNK4llvm12SelectionDAG24isConstantValueOfAnyTypeENS_7SDValueE.exit %N1.sroa.39.8.extract.trunc = trunc i64 %N1.sroa.39.0.copyload to i32 %UseList.i.i.i.i = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 56 %__begin2.sroa.0.028.i.i = load ptr, ptr %UseList.i.i.i.i, align 8, !tbaa !76 %cmp.i.i.not29.i.i = icmp eq ptr %__begin2.sroa.0.028.i.i, null br i1 %cmp.i.i.not29.i.i, label %if.end83, label %for.body.i.i for.cond.i.i: ; preds = %for.body.i.i %NUses.addr.2.i.i = select i1 %cmp.i.i, i32 %NUses.addr.030.i.i, i32 0 %Next.i.i.i.i = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i, i64 32 %__begin2.sroa.0.0.i.i = load ptr, ptr %Next.i.i.i.i, align 8, !tbaa !76 %cmp.i.i.not.i.i = icmp eq ptr %__begin2.sroa.0.0.i.i, null br i1 %cmp.i.i.not.i.i, label %_ZNK4llvm7SDValue9hasOneUseEv.exit, label %for.body.i.i for.body.i.i: ; preds = %for.cond.i.i, %lor.lhs.false %__begin2.sroa.0.031.i.i = phi ptr [ %__begin2.sroa.0.0.i.i, %for.cond.i.i ], [ %__begin2.sroa.0.028.i.i, %lor.lhs.false ] %NUses.addr.030.i.i = phi i32 [ %NUses.addr.2.i.i, %for.cond.i.i ], [ 1, %lor.lhs.false ] %ResNo.i.i.i.i = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i, i64 8 %56 = load i32, ptr %ResNo.i.i.i.i, align 8, !tbaa !38 %cmp.i.i = icmp ne i32 %56, %N1.sroa.39.8.extract.trunc %cmp9.i.i = icmp ne i32 %NUses.addr.030.i.i, 0 %cond.i.i = select i1 %cmp.i.i, i1 true, i1 %cmp9.i.i br i1 %cond.i.i, label %for.cond.i.i, label %if.end83 _ZNK4llvm7SDValue9hasOneUseEv.exit: ; preds = %for.cond.i.i %57 = icmp eq i32 %NUses.addr.2.i.i, 0 br i1 %57, label %if.then74, label %if.end83 if.then74: ; preds = %_ZNK4llvm7SDValue9hasOneUseEv.exit, %_ZNK4llvm12SelectionDAG24isConstantValueOfAnyTypeENS_7SDValueE.exit, %if.then68 %58 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp76) #6 %debugLoc.i.i956 = getelementptr inbounds nuw i8, ptr %N, i64 72 %59 = load ptr, ptr %debugLoc.i.i956, align 8, !tbaa !72 store ptr %59, ptr %ref.tmp76, align 8, !tbaa !72 %tobool.not.i.i.i.i.i957 = icmp eq ptr %59, null br i1 %tobool.not.i.i.i.i.i957, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit962, label %if.then.i.i.i.i.i958 if.then.i.i.i.i.i958: ; preds = %if.then74 %call.i.i.i.i.i.i959 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp76, ptr noundef nonnull align 4 dereferenceable(8) %59, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit962 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit962: ; preds = %if.then.i.i.i.i.i958, %if.then74 %IROrder.i960 = getelementptr inbounds nuw i8, ptr %ref.tmp76, i64 8 %IROrder.i.i961 = getelementptr inbounds nuw i8, ptr %N, i64 68 %60 = load i32, ptr %IROrder.i.i961, align 4, !tbaa !73 store i32 %60, ptr %IROrder.i960, align 8, !tbaa !74 %agg.tmp77.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp77.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %61 = load ptr, ptr %OperandList.i.i952, align 8, !tbaa !26 %agg.tmp78.sroa.0.0.copyload = load i64, ptr %61, align 8, !tbaa !27 %agg.tmp78.sroa.2.0.call79.sroa_idx = getelementptr inbounds nuw i8, ptr %61, i64 8 %agg.tmp78.sroa.2.0.copyload = load i64, ptr %agg.tmp78.sroa.2.0.call79.sroa_idx, align 8 %.fca.0.insert776 = insertvalue [2 x i64] poison, i64 %agg.tmp77.sroa.0.0.copyload, 0 %.fca.1.insert779 = insertvalue [2 x i64] %.fca.0.insert776, i64 %agg.tmp77.sroa.2.0.copyload, 1 %.fca.0.insert770 = insertvalue [2 x i64] poison, i64 %agg.tmp78.sroa.0.0.copyload, 0 %.fca.1.insert773 = insertvalue [2 x i64] %.fca.0.insert770, i64 %agg.tmp78.sroa.2.0.copyload, 1 %call80 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %58, i32 noundef 169, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp76, [2 x i64] %.fca.1.insert779, [2 x i64] %.fca.1.insert773) #6 %call80.fca.0.extract = extractvalue [2 x i64] %call80, 0 %call80.fca.1.extract = extractvalue [2 x i64] %call80, 1 %62 = inttoptr i64 %call80.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1650 = and i64 %call80.fca.1.extract, 4294967295 %63 = load ptr, ptr %ref.tmp76, align 8, !tbaa !72 %tobool.not.i.i.i.i.i965 = icmp eq ptr %63, null br i1 %tobool.not.i.i.i.i.i965, label %_ZN4llvm5SDLocD2Ev.exit967, label %if.then.i.i.i.i.i966 if.then.i.i.i.i.i966: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit962 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp76, ptr noundef nonnull align 4 dereferenceable(8) %63) #6 br label %_ZN4llvm5SDLocD2Ev.exit967 _ZN4llvm5SDLocD2Ev.exit967: ; preds = %if.then.i.i.i.i.i966, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit962 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp76) #6 br label %cleanup463 if.end83: ; preds = %_ZNK4llvm7SDValue9hasOneUseEv.exit, %for.body.i.i, %lor.lhs.false, %if.end63, %land.lhs.true59, %land.lhs.true56 %64 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 %65 = add i32 %64, -51 %spec.select.i.i969 = icmp ult i32 %65, 2 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp98) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp108) #6 br i1 %spec.select.i.i969, label %land.lhs.true85, label %if.end126.critedge land.lhs.true85: ; preds = %if.end83 %66 = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 %cmp87 = icmp eq i32 %66, 235 br i1 %cmp87, label %land.lhs.true88, label %if.end126.critedge land.lhs.true88: ; preds = %land.lhs.true85 %OperandList.i.i971 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %67 = load ptr, ptr %OperandList.i.i971, align 8, !tbaa !26 %68 = load ptr, ptr %67, align 8, !tbaa !36 %NodeType.i.i973 = getelementptr inbounds nuw i8, ptr %68, i64 24 %69 = load i32, ptr %NodeType.i.i973, align 8, !tbaa !35 %cmp91 = icmp eq i32 %69, 162 br i1 %cmp91, label %land.lhs.true92, label %if.end126.critedge land.lhs.true92: ; preds = %land.lhs.true88 %OperandList.i.i976 = getelementptr inbounds nuw i8, ptr %68, i64 40 %70 = load ptr, ptr %OperandList.i.i976, align 8, !tbaa !26 %arrayidx.i.i977 = getelementptr inbounds nuw i8, ptr %70, i64 40 %71 = load ptr, ptr %arrayidx.i.i977, align 8, !tbaa !36 %cmp.i978 = icmp eq ptr %71, %N2.sroa.0.0.copyload %ResNo.i979 = getelementptr inbounds nuw i8, ptr %70, i64 48 %72 = load i32, ptr %ResNo.i979, align 8 %N2.sroa.15.8.extract.trunc1539 = trunc i64 %N2.sroa.15.0.copyload to i32 %cmp4.i981 = icmp eq i32 %72, %N2.sroa.15.8.extract.trunc1539 %73 = select i1 %cmp.i978, i1 %cmp4.i981, i1 false br i1 %73, label %land.lhs.true96, label %if.end126.critedge land.lhs.true96: ; preds = %land.lhs.true92 %74 = load ptr, ptr %70, align 8, !tbaa !36 %ResNo.i986 = getelementptr inbounds nuw i8, ptr %70, i64 8 %75 = load i32, ptr %ResNo.i986, align 8, !tbaa !38 %ValueList.i.i987 = getelementptr inbounds nuw i8, ptr %74, i64 48 %76 = load ptr, ptr %ValueList.i.i987, align 8, !tbaa !4 %idxprom.i.i988 = zext i32 %75 to i64 %arrayidx.i.i989 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %76, i64 %idxprom.i.i988 %77 = load <2 x i64>, ptr %arrayidx.i.i989, align 8 store <2 x i64> %77, ptr %ref.tmp98, align 16 %78 = extractelement <2 x i64> %77, i64 0 %79 = trunc i64 %78 to i16 %cmp.i.not.i995 = icmp eq i16 %79, 0 br i1 %cmp.i.not.i995, label %if.end.i, label %if.then.i if.then.i: ; preds = %land.lhs.true96 %conv.i.i.i = and i64 %78, 65535 %sub.i.i.i = add nsw i64 %conv.i.i.i, -1 %arrayidx.i.i.i = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT23getVectorMinNumElementsEvE10NElemTable, i64 0, i64 %sub.i.i.i %80 = load i16, ptr %arrayidx.i.i.i, align 2, !tbaa !77 %81 = add i16 %79, -138 %spec.select.i.i.i = icmp ult i16 %81, 53 %retval.sroa.2.0.insert.shift.i.i.i = select i1 %spec.select.i.i.i, i64 4294967296, i64 0 %retval.sroa.0.0.insert.ext.i.i.i = zext i16 %80 to i64 %retval.sroa.0.0.insert.insert.i.i.i = or disjoint i64 %retval.sroa.2.0.insert.shift.i.i.i, %retval.sroa.0.0.insert.ext.i.i.i br label %_ZNK4llvm3EVT21getVectorElementCountEv.exit if.end.i: ; preds = %land.lhs.true96 %call3.i996 = call i64 @_ZNK4llvm3EVT29getExtendedVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp98) #7 br label %_ZNK4llvm3EVT21getVectorElementCountEv.exit _ZNK4llvm3EVT21getVectorElementCountEv.exit: ; preds = %if.end.i, %if.then.i %retval.sroa.0.0.in.i = phi i64 [ %retval.sroa.0.0.insert.insert.i.i.i, %if.then.i ], [ %call3.i996, %if.end.i ] %82 = load i16, ptr %VT, align 8, !tbaa !39 %cmp.i.not.i997 = icmp eq i16 %82, 0 br i1 %cmp.i.not.i997, label %if.end.i1008, label %if.then.i998 if.then.i998: ; preds = %_ZNK4llvm3EVT21getVectorElementCountEv.exit %conv.i.i.i999 = zext i16 %82 to i64 %sub.i.i.i1000 = add nsw i64 %conv.i.i.i999, -1 %arrayidx.i.i.i1001 = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT23getVectorMinNumElementsEvE10NElemTable, i64 0, i64 %sub.i.i.i1000 %83 = load i16, ptr %arrayidx.i.i.i1001, align 2, !tbaa !77 %84 = add i16 %82, -138 %spec.select.i.i.i1002 = icmp ult i16 %84, 53 %retval.sroa.2.0.insert.shift.i.i.i1003 = select i1 %spec.select.i.i.i1002, i64 4294967296, i64 0 %retval.sroa.0.0.insert.ext.i.i.i1004 = zext i16 %83 to i64 %retval.sroa.0.0.insert.insert.i.i.i1005 = or disjoint i64 %retval.sroa.2.0.insert.shift.i.i.i1003, %retval.sroa.0.0.insert.ext.i.i.i1004 br label %_ZNK4llvm3EVT21getVectorElementCountEv.exit1010 if.end.i1008: ; preds = %_ZNK4llvm3EVT21getVectorElementCountEv.exit %call3.i1009 = call i64 @_ZNK4llvm3EVT29getExtendedVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) #7 br label %_ZNK4llvm3EVT21getVectorElementCountEv.exit1010 _ZNK4llvm3EVT21getVectorElementCountEv.exit1010: ; preds = %if.end.i1008, %if.then.i998 %retval.sroa.0.0.in.i1006 = phi i64 [ %retval.sroa.0.0.insert.insert.i.i.i1005, %if.then.i998 ], [ %call3.i1009, %if.end.i1008 ] %85 = trunc i64 %retval.sroa.0.0.in.i to i40 %86 = trunc i64 %retval.sroa.0.0.in.i1006 to i40 %87 = icmp eq i40 %85, %86 br i1 %87, label %land.rhs, label %if.end126.critedge land.rhs: ; preds = %_ZNK4llvm3EVT21getVectorElementCountEv.exit1010 %88 = load ptr, ptr %67, align 8, !tbaa !36 %OperandList.i.i1014 = getelementptr inbounds nuw i8, ptr %88, i64 40 %89 = load ptr, ptr %OperandList.i.i1014, align 8, !tbaa !26 %90 = load ptr, ptr %89, align 8, !tbaa !36 %ResNo.i1016 = getelementptr inbounds nuw i8, ptr %89, i64 8 %91 = load i32, ptr %ResNo.i1016, align 8, !tbaa !38 %ValueList.i.i1017 = getelementptr inbounds nuw i8, ptr %90, i64 48 %92 = load ptr, ptr %ValueList.i.i1017, align 8, !tbaa !4 %idxprom.i.i1018 = zext i32 %91 to i64 %arrayidx.i.i1019 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %92, i64 %idxprom.i.i1018 %93 = load <2 x i64>, ptr %arrayidx.i.i1019, align 8 store <2 x i64> %93, ptr %ref.tmp108, align 16 %call112 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp108) %call112.fca.0.extract = extractvalue [2 x i64] %call112, 0 %call112.fca.1.extract = extractvalue [2 x i64] %call112, 1 %tmp.coerce113.sroa.2.0.extract.trunc = trunc i64 %call112.fca.1.extract to i8 %call115 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) %call115.fca.0.extract = extractvalue [2 x i64] %call115, 0 %call115.fca.1.extract = extractvalue [2 x i64] %call115, 1 %tmp.coerce116.sroa.2.0.extract.trunc = trunc i64 %call115.fca.1.extract to i8 %cmp.i1025 = icmp eq i64 %call112.fca.0.extract, %call115.fca.0.extract %cmp6.i1028 = icmp eq i8 %tmp.coerce113.sroa.2.0.extract.trunc, %tmp.coerce116.sroa.2.0.extract.trunc %94 = select i1 %cmp.i1025, i1 %cmp6.i1028, i1 false call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp108) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp98) #6 br i1 %94, label %if.then118, label %land.rhs.if.end126_crit_edge land.rhs.if.end126_crit_edge: ; preds = %land.rhs %.pre1723 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 br label %if.end126 if.then118: ; preds = %land.rhs %95 = load ptr, ptr %this, align 8, !tbaa !43 %agg.tmp120.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp120.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %96 = load ptr, ptr %OperandList.i.i971, align 8, !tbaa !26 %97 = load ptr, ptr %96, align 8, !tbaa !36 %OperandList.i.i1031 = getelementptr inbounds nuw i8, ptr %97, i64 40 %98 = load ptr, ptr %OperandList.i.i1031, align 8, !tbaa !26 %agg.tmp121.sroa.0.0.copyload = load i64, ptr %98, align 8, !tbaa !27 %agg.tmp121.sroa.2.0.call123.sroa_idx = getelementptr inbounds nuw i8, ptr %98, i64 8 %agg.tmp121.sroa.2.0.copyload = load i64, ptr %agg.tmp121.sroa.2.0.call123.sroa_idx, align 8 %.fca.0.insert764 = insertvalue [2 x i64] poison, i64 %agg.tmp120.sroa.0.0.copyload, 0 %.fca.1.insert767 = insertvalue [2 x i64] %.fca.0.insert764, i64 %agg.tmp120.sroa.2.0.copyload, 1 %.fca.0.insert758 = insertvalue [2 x i64] poison, i64 %agg.tmp121.sroa.0.0.copyload, 0 %.fca.1.insert761 = insertvalue [2 x i64] %.fca.0.insert758, i64 %agg.tmp121.sroa.2.0.copyload, 1 %call124 = call [2 x i64] @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %95, [2 x i64] %.fca.1.insert767, [2 x i64] %.fca.1.insert761) #6 %call124.fca.0.extract = extractvalue [2 x i64] %call124, 0 %call124.fca.1.extract = extractvalue [2 x i64] %call124, 1 %99 = inttoptr i64 %call124.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1646 = and i64 %call124.fca.1.extract, 4294967295 br label %cleanup463 if.end126.critedge: ; preds = %_ZNK4llvm3EVT21getVectorElementCountEv.exit1010, %land.lhs.true92, %land.lhs.true88, %land.lhs.true85, %if.end83 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp108) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp98) #6 br label %if.end126 if.end126: ; preds = %if.end126.critedge, %land.rhs.if.end126_crit_edge %100 = phi i32 [ %.pre1723, %land.rhs.if.end126_crit_edge ], [ %64, %if.end126.critedge ] %cmp128 = icmp eq i32 %100, 235 br i1 %cmp128, label %land.lhs.true129, label %if.end178 land.lhs.true129: ; preds = %if.end126 %101 = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 %cmp131 = icmp eq i32 %101, 235 br i1 %cmp131, label %if.then132, label %if.end458.critedge.sink.split if.then132: ; preds = %land.lhs.true129 %OperandList.i.i1035 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 40 %102 = load ptr, ptr %OperandList.i.i1035, align 8, !tbaa !26 %CN0.sroa.0.0.copyload = load ptr, ptr %102, align 8, !tbaa !27 %CN0.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %102, i64 8 %CN0.sroa.7.0.copyload = load i64, ptr %CN0.sroa.7.0..sroa_idx, align 8 %OperandList.i.i1037 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %103 = load ptr, ptr %OperandList.i.i1037, align 8, !tbaa !26 %CN1.sroa.0.0.copyload = load ptr, ptr %103, align 8, !tbaa !27 %CN1.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %103, i64 8 %CN1.sroa.6.0.copyload = load i64, ptr %CN1.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %CN0VT) #6 %ValueList.i.i1040 = getelementptr inbounds nuw i8, ptr %CN0.sroa.0.0.copyload, i64 48 %104 = load ptr, ptr %ValueList.i.i1040, align 8, !tbaa !4 %idxprom.i.i1041 = and i64 %CN0.sroa.7.0.copyload, 4294967295 %arrayidx.i.i1042 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %104, i64 %idxprom.i.i1041 %105 = load <2 x i64>, ptr %arrayidx.i.i1042, align 8 store <2 x i64> %105, ptr %CN0VT, align 16 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %CN1VT) #6 %ValueList.i.i1049 = getelementptr inbounds nuw i8, ptr %CN1.sroa.0.0.copyload, i64 48 %106 = load ptr, ptr %ValueList.i.i1049, align 8, !tbaa !4 %idxprom.i.i1050 = and i64 %CN1.sroa.6.0.copyload, 4294967295 %arrayidx.i.i1051 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %106, i64 %idxprom.i.i1050 %107 = load <2 x i64>, ptr %arrayidx.i.i1051, align 8 store <2 x i64> %107, ptr %CN1VT, align 16 %108 = extractelement <2 x i64> %105, i64 0 %109 = trunc i64 %108 to i16 %cmp.i.not.i1057 = icmp eq i16 %109, 0 %110 = bitcast <2 x i64> %107 to <8 x i16> %111 = extractelement <8 x i16> %110, i64 0 br i1 %cmp.i.not.i1057, label %_ZNK4llvm3EVT8isVectorEv.exit, label %cond.true.i1058 cond.true.i1058: ; preds = %if.then132 %112 = add i16 %109, -17 %spec.select.i.i1059 = icmp ult i16 %112, 174 br i1 %spec.select.i.i1059, label %land.lhs.true138, label %cleanup172 _ZNK4llvm3EVT8isVectorEv.exit: ; preds = %if.then132 %call3.i1062 = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %CN0VT) #7 br i1 %call3.i1062, label %land.lhs.true138, label %cleanup172 land.lhs.true138: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit, %cond.true.i1058 %cmp.i.not.i1063 = icmp eq i16 %111, 0 br i1 %cmp.i.not.i1063, label %_ZNK4llvm3EVT8isVectorEv.exit1069, label %cond.true.i1064 cond.true.i1064: ; preds = %land.lhs.true138 %113 = add i16 %111, -17 %spec.select.i.i1065 = icmp ult i16 %113, 174 br i1 %spec.select.i.i1065, label %land.lhs.true140, label %cleanup172 _ZNK4llvm3EVT8isVectorEv.exit1069: ; preds = %land.lhs.true138 %call3.i1068 = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %CN1VT) #7 br i1 %call3.i1068, label %land.lhs.true140, label %cleanup172 land.lhs.true140: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit1069, %cond.true.i1064 br i1 %cmp.i.not.i1057, label %if.end.i1076, label %if.then.i1071 if.then.i1071: ; preds = %land.lhs.true140 %conv.i.i = and i64 %108, 65535 %sub.i.i = add nsw i64 %conv.i.i, -1 %arrayidx.i.i1072 = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable, i64 0, i64 %sub.i.i %114 = load i16, ptr %arrayidx.i.i1072, align 2, !tbaa !78 br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit if.end.i1076: ; preds = %land.lhs.true140 %call4.i = call [2 x i64] @_ZNK4llvm3EVT28getExtendedVectorElementTypeEv(ptr noundef nonnull align 8 dereferenceable(16) %CN0VT) #6 %call4.fca.0.extract.i = extractvalue [2 x i64] %call4.i, 0 %retval.sroa.0.0.extract.trunc.i = trunc i64 %call4.fca.0.extract.i to i16 %call4.fca.1.extract.i = extractvalue [2 x i64] %call4.i, 1 %115 = inttoptr i64 %call4.fca.1.extract.i to ptr %.pre1724 = load i16, ptr %CN1VT, align 16, !tbaa !39 br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit _ZNK4llvm3EVT20getVectorElementTypeEv.exit: ; preds = %if.end.i1076, %if.then.i1071 %116 = phi i16 [ %111, %if.then.i1071 ], [ %.pre1724, %if.end.i1076 ] %retval.sroa.35.0.i = phi ptr [ null, %if.then.i1071 ], [ %115, %if.end.i1076 ] %retval.sroa.0.0.i = phi i16 [ %114, %if.then.i1071 ], [ %retval.sroa.0.0.extract.trunc.i, %if.end.i1076 ] %cmp.i.not.i1077 = icmp eq i16 %116, 0 br i1 %cmp.i.not.i1077, label %if.end.i1089, label %if.then.i1078 if.then.i1078: ; preds = %_ZNK4llvm3EVT20getVectorElementTypeEv.exit %conv.i.i1079 = zext i16 %116 to i64 %sub.i.i1080 = add nsw i64 %conv.i.i1079, -1 %arrayidx.i.i1081 = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable, i64 0, i64 %sub.i.i1080 %117 = load i16, ptr %arrayidx.i.i1081, align 2, !tbaa !78 br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit1095 if.end.i1089: ; preds = %_ZNK4llvm3EVT20getVectorElementTypeEv.exit %call4.i1090 = call [2 x i64] @_ZNK4llvm3EVT28getExtendedVectorElementTypeEv(ptr noundef nonnull align 8 dereferenceable(16) %CN1VT) #6 %call4.fca.0.extract.i1091 = extractvalue [2 x i64] %call4.i1090, 0 %retval.sroa.0.0.extract.trunc.i1092 = trunc i64 %call4.fca.0.extract.i1091 to i16 %call4.fca.1.extract.i1094 = extractvalue [2 x i64] %call4.i1090, 1 %118 = inttoptr i64 %call4.fca.1.extract.i1094 to ptr br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit1095 _ZNK4llvm3EVT20getVectorElementTypeEv.exit1095: ; preds = %if.end.i1089, %if.then.i1078 %retval.sroa.35.0.i1083 = phi ptr [ null, %if.then.i1078 ], [ %118, %if.end.i1089 ] %retval.sroa.0.0.i1084 = phi i16 [ %117, %if.then.i1078 ], [ %retval.sroa.0.0.extract.trunc.i1092, %if.end.i1089 ] %cmp.not.i.i1096 = icmp eq i16 %retval.sroa.0.0.i, %retval.sroa.0.0.i1084 br i1 %cmp.not.i.i1096, label %if.end.i.i1098, label %cleanup172 if.end.i.i1098: ; preds = %_ZNK4llvm3EVT20getVectorElementTypeEv.exit1095 %cmp8.i.i1099 = icmp ne i16 %retval.sroa.0.0.i, 0 %cmp11.i.i1102 = icmp eq ptr %retval.sroa.35.0.i, %retval.sroa.35.0.i1083 %or.cond1707 = select i1 %cmp8.i.i1099, i1 true, i1 %cmp11.i.i1102 br i1 %or.cond1707, label %land.rhs146, label %cleanup172 land.rhs146: ; preds = %if.end.i.i1098 %call148 = call i64 @_ZNK4llvm3EVT21getVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16) %CN0VT) %call151 = call i64 @_ZNK4llvm3EVT21getVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) %119 = trunc i64 %call148 to i40 %120 = trunc i64 %call151 to i40 %121 = icmp eq i40 %119, %120 br i1 %121, label %if.then155, label %cleanup172 if.then155: ; preds = %land.rhs146 %122 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp157) #6 %debugLoc.i.i1108 = getelementptr inbounds nuw i8, ptr %N, i64 72 %123 = load ptr, ptr %debugLoc.i.i1108, align 8, !tbaa !72 store ptr %123, ptr %ref.tmp157, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1109 = icmp eq ptr %123, null br i1 %tobool.not.i.i.i.i.i1109, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1114, label %if.then.i.i.i.i.i1110 if.then.i.i.i.i.i1110: ; preds = %if.then155 %call.i.i.i.i.i.i1111 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp157, ptr noundef nonnull align 4 dereferenceable(8) %123, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1114 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1114: ; preds = %if.then.i.i.i.i.i1110, %if.then155 %IROrder.i1112 = getelementptr inbounds nuw i8, ptr %ref.tmp157, i64 8 %IROrder.i.i1113 = getelementptr inbounds nuw i8, ptr %N, i64 68 %124 = load i32, ptr %IROrder.i.i1113, align 4, !tbaa !73 store i32 %124, ptr %IROrder.i1112, align 8, !tbaa !74 %125 = load ptr, ptr %ValueList.i.i1040, align 8, !tbaa !4 %arrayidx.i.i1118 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %125, i64 %idxprom.i.i1041 %retval.sroa.0.0.copyload.i.i1119 = load i64, ptr %arrayidx.i.i1118, align 8 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1120 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1118, i64 8 %retval.sroa.2.0.copyload.i.i1121 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1120, align 8, !tbaa !24 %.fca.0.insert.i.i1122 = insertvalue [2 x i64] poison, i64 %retval.sroa.0.0.copyload.i.i1119, 0 %.fca.1.insert.i.i1123 = insertvalue [2 x i64] %.fca.0.insert.i.i1122, i64 %retval.sroa.2.0.copyload.i.i1121, 1 %126 = ptrtoint ptr %CN0.sroa.0.0.copyload to i64 %127 = ptrtoint ptr %CN1.sroa.0.0.copyload to i64 %128 = ptrtoint ptr %N2.sroa.0.0.copyload to i64 %.fca.0.insert740 = insertvalue [2 x i64] poison, i64 %126, 0 %.fca.1.insert743 = insertvalue [2 x i64] %.fca.0.insert740, i64 %CN0.sroa.7.0.copyload, 1 %.fca.0.insert734 = insertvalue [2 x i64] poison, i64 %127, 0 %.fca.1.insert737 = insertvalue [2 x i64] %.fca.0.insert734, i64 %CN1.sroa.6.0.copyload, 1 %.fca.0.insert728 = insertvalue [2 x i64] poison, i64 %128, 0 %.fca.1.insert731 = insertvalue [2 x i64] %.fca.0.insert728, i64 %N2.sroa.15.0.copyload, 1 %call163 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %122, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp157, [2 x i64] %.fca.1.insert.i.i1123, [2 x i64] %.fca.1.insert743, [2 x i64] %.fca.1.insert737, [2 x i64] %.fca.1.insert731) #6 %call163.fca.1.extract = extractvalue [2 x i64] %call163, 1 %NewINSERT.sroa.4.8.insert.ext = and i64 %call163.fca.1.extract, 4294967295 %129 = load ptr, ptr %ref.tmp157, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1124 = icmp eq ptr %129, null br i1 %tobool.not.i.i.i.i.i1124, label %_ZN4llvm5SDLocD2Ev.exit1126, label %if.then.i.i.i.i.i1125 if.then.i.i.i.i.i1125: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1114 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp157, ptr noundef nonnull align 4 dereferenceable(8) %129) #6 br label %_ZN4llvm5SDLocD2Ev.exit1126 _ZN4llvm5SDLocD2Ev.exit1126: ; preds = %if.then.i.i.i.i.i1125, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1114 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp157) #6 %130 = load ptr, ptr %this, align 8, !tbaa !43 %agg.tmp166.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp166.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %.fca.0.insert722 = insertvalue [2 x i64] poison, i64 %agg.tmp166.sroa.0.0.copyload, 0 %.fca.1.insert725 = insertvalue [2 x i64] %.fca.0.insert722, i64 %agg.tmp166.sroa.2.0.copyload, 1 %.fca.1.insert719 = insertvalue [2 x i64] %call163, i64 %NewINSERT.sroa.4.8.insert.ext, 1 %call168 = call [2 x i64] @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %130, [2 x i64] %.fca.1.insert725, [2 x i64] %.fca.1.insert719) #6 %call168.fca.0.extract = extractvalue [2 x i64] %call168, 0 %call168.fca.1.extract = extractvalue [2 x i64] %call168, 1 %131 = inttoptr i64 %call168.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1642 = and i64 %call168.fca.1.extract, 4294967295 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %CN1VT) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %CN0VT) #6 br label %cleanup463 cleanup172: ; preds = %land.rhs146, %if.end.i.i1098, %_ZNK4llvm3EVT20getVectorElementTypeEv.exit1095, %_ZNK4llvm3EVT8isVectorEv.exit1069, %cond.true.i1064, %_ZNK4llvm3EVT8isVectorEv.exit, %cond.true.i1058 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %CN1VT) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %CN0VT) #6 %.pr = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 br label %if.end178 if.end178: ; preds = %cleanup172, %if.end126 %132 = phi i32 [ %.pr, %cleanup172 ], [ %100, %if.end126 ] %cmp180 = icmp eq i32 %132, 161 br i1 %cmp180, label %land.lhs.true181, label %if.end202 land.lhs.true181: ; preds = %if.end178 %OperandList.i.i1128 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 40 %133 = load ptr, ptr %OperandList.i.i1128, align 8, !tbaa !26 %arrayidx.i.i1129 = getelementptr inbounds nuw i8, ptr %133, i64 40 %134 = load ptr, ptr %arrayidx.i.i1129, align 8, !tbaa !36 %ResNo.i1130 = getelementptr inbounds nuw i8, ptr %133, i64 48 %135 = load i32, ptr %ResNo.i1130, align 8, !tbaa !38 %ValueList.i.i1131 = getelementptr inbounds nuw i8, ptr %134, i64 48 %136 = load ptr, ptr %ValueList.i.i1131, align 8, !tbaa !4 %idxprom.i.i1132 = zext i32 %135 to i64 %arrayidx.i.i1133 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %136, i64 %idxprom.i.i1132 %retval.sroa.0.0.copyload.i.i1134 = load i64, ptr %arrayidx.i.i1133, align 8 %ValueList.i.i1140 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 48 %137 = load ptr, ptr %ValueList.i.i1140, align 8, !tbaa !4 %idxprom.i.i1141 = and i64 %N1.sroa.39.0.copyload, 4294967295 %arrayidx.i.i1142 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %137, i64 %idxprom.i.i1141 %retval.sroa.0.0.copyload.i.i1143 = load i64, ptr %arrayidx.i.i1142, align 8 %ref.tmp182.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i.i1134 to i16 %138 = trunc i64 %retval.sroa.0.0.copyload.i.i1143 to i16 %cmp.not.i.i1148 = icmp eq i16 %ref.tmp182.sroa.0.0.extract.trunc, %138 br i1 %cmp.not.i.i1148, label %if.end.i.i1150, label %if.end227 if.end.i.i1150: ; preds = %land.lhs.true181 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1144 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1142, i64 8 %retval.sroa.2.0.copyload.i.i1145 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1144, align 8, !tbaa !24 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1135 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1133, i64 8 %retval.sroa.2.0.copyload.i.i1136 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1135, align 8, !tbaa !24 %cmp8.i.i1151 = icmp ne i16 %ref.tmp182.sroa.0.0.extract.trunc, 0 %cmp11.i.i1154 = icmp eq i64 %retval.sroa.2.0.copyload.i.i1136, %retval.sroa.2.0.copyload.i.i1145 %or.cond1708 = select i1 %cmp8.i.i1151, i1 true, i1 %cmp11.i.i1154 br i1 %or.cond1708, label %land.rhs188, label %if.end227 land.rhs188: ; preds = %if.end.i.i1150 %arrayidx.i.i1157 = getelementptr inbounds nuw i8, ptr %133, i64 80 %139 = load ptr, ptr %arrayidx.i.i1157, align 8, !tbaa !36 %cmp.i1158 = icmp eq ptr %139, %N2.sroa.0.0.copyload %ResNo.i1159 = getelementptr inbounds nuw i8, ptr %133, i64 88 %140 = load i32, ptr %ResNo.i1159, align 8 %N2.sroa.15.8.extract.trunc1541 = trunc i64 %N2.sroa.15.0.copyload to i32 %cmp4.i1161 = icmp eq i32 %140, %N2.sroa.15.8.extract.trunc1541 %141 = select i1 %cmp.i1158, i1 %cmp4.i1161, i1 false br i1 %141, label %if.then192, label %if.end227 if.then192: ; preds = %land.rhs188 %142 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp194) #6 %debugLoc.i.i1162 = getelementptr inbounds nuw i8, ptr %N, i64 72 %143 = load ptr, ptr %debugLoc.i.i1162, align 8, !tbaa !72 store ptr %143, ptr %ref.tmp194, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1163 = icmp eq ptr %143, null br i1 %tobool.not.i.i.i.i.i1163, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1168, label %if.then.i.i.i.i.i1164 if.then.i.i.i.i.i1164: ; preds = %if.then192 %call.i.i.i.i.i.i1165 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp194, ptr noundef nonnull align 4 dereferenceable(8) %143, i64 1) #6 %.pre1728 = load ptr, ptr %OperandList.i.i1128, align 8, !tbaa !26 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1168 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1168: ; preds = %if.then.i.i.i.i.i1164, %if.then192 %144 = phi ptr [ %133, %if.then192 ], [ %.pre1728, %if.then.i.i.i.i.i1164 ] %IROrder.i1166 = getelementptr inbounds nuw i8, ptr %ref.tmp194, i64 8 %IROrder.i.i1167 = getelementptr inbounds nuw i8, ptr %N, i64 68 %145 = load i32, ptr %IROrder.i.i1167, align 4, !tbaa !73 store i32 %145, ptr %IROrder.i1166, align 8, !tbaa !74 %agg.tmp195.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp195.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %agg.tmp196.sroa.0.0.copyload = load i64, ptr %144, align 8, !tbaa !27 %agg.tmp196.sroa.2.0.call197.sroa_idx = getelementptr inbounds nuw i8, ptr %144, i64 8 %agg.tmp196.sroa.2.0.copyload = load i64, ptr %agg.tmp196.sroa.2.0.call197.sroa_idx, align 8 %146 = ptrtoint ptr %N1.sroa.0.0.copyload to i64 %147 = ptrtoint ptr %N2.sroa.0.0.copyload to i64 %.fca.0.insert704 = insertvalue [2 x i64] poison, i64 %agg.tmp195.sroa.0.0.copyload, 0 %.fca.1.insert707 = insertvalue [2 x i64] %.fca.0.insert704, i64 %agg.tmp195.sroa.2.0.copyload, 1 %.fca.0.insert698 = insertvalue [2 x i64] poison, i64 %agg.tmp196.sroa.0.0.copyload, 0 %.fca.1.insert701 = insertvalue [2 x i64] %.fca.0.insert698, i64 %agg.tmp196.sroa.2.0.copyload, 1 %.fca.0.insert692 = insertvalue [2 x i64] poison, i64 %146, 0 %.fca.1.insert695 = insertvalue [2 x i64] %.fca.0.insert692, i64 %N1.sroa.39.0.copyload, 1 %.fca.0.insert686 = insertvalue [2 x i64] poison, i64 %147, 0 %.fca.1.insert689 = insertvalue [2 x i64] %.fca.0.insert686, i64 %N2.sroa.15.0.copyload, 1 %call200 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %142, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp194, [2 x i64] %.fca.1.insert707, [2 x i64] %.fca.1.insert701, [2 x i64] %.fca.1.insert695, [2 x i64] %.fca.1.insert689) #6 %call200.fca.0.extract = extractvalue [2 x i64] %call200, 0 %call200.fca.1.extract = extractvalue [2 x i64] %call200, 1 %148 = inttoptr i64 %call200.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1638 = and i64 %call200.fca.1.extract, 4294967295 %149 = load ptr, ptr %ref.tmp194, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1171 = icmp eq ptr %149, null br i1 %tobool.not.i.i.i.i.i1171, label %_ZN4llvm5SDLocD2Ev.exit1173, label %if.then.i.i.i.i.i1172 if.then.i.i.i.i.i1172: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1168 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp194, ptr noundef nonnull align 4 dereferenceable(8) %149) #6 br label %_ZN4llvm5SDLocD2Ev.exit1173 _ZN4llvm5SDLocD2Ev.exit1173: ; preds = %if.then.i.i.i.i.i1172, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1168 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp194) #6 br label %cleanup463 if.end202: ; preds = %if.end178 %150 = add i32 %132, -51 %spec.select.i.i1175 = icmp ult i32 %150, 2 br i1 %spec.select.i.i1175, label %land.lhs.true204, label %if.end227 land.lhs.true204: ; preds = %if.end202 %151 = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 %cmp206 = icmp eq i32 %151, 161 br i1 %cmp206, label %land.lhs.true207, label %if.end227 land.lhs.true207: ; preds = %land.lhs.true204 %OperandList.i.i1177 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 40 %152 = load ptr, ptr %OperandList.i.i1177, align 8, !tbaa !26 %153 = load ptr, ptr %152, align 8, !tbaa !36 %NodeType.i.i1179 = getelementptr inbounds nuw i8, ptr %153, i64 24 %154 = load i32, ptr %NodeType.i.i1179, align 8, !tbaa !35 %155 = add i32 %154, -51 %spec.select.i.i1180 = icmp ult i32 %155, 2 br i1 %spec.select.i.i1180, label %land.lhs.true210, label %if.end227 land.lhs.true210: ; preds = %land.lhs.true207 %arrayidx.i.i1182 = getelementptr inbounds nuw i8, ptr %152, i64 80 %agg.tmp211.sroa.0.0.copyload = load i64, ptr %arrayidx.i.i1182, align 8, !tbaa !27 %agg.tmp211.sroa.2.0.call212.sroa_idx = getelementptr inbounds nuw i8, ptr %152, i64 88 %agg.tmp211.sroa.2.0.copyload = load i64, ptr %agg.tmp211.sroa.2.0.call212.sroa_idx, align 8 %.fca.0.insert680 = insertvalue [2 x i64] poison, i64 %agg.tmp211.sroa.0.0.copyload, 0 %.fca.1.insert683 = insertvalue [2 x i64] %.fca.0.insert680, i64 %agg.tmp211.sroa.2.0.copyload, 1 %call213 = call noundef i1 @_ZN4llvm14isNullConstantENS_7SDValueE([2 x i64] %.fca.1.insert683) #6 br i1 %call213, label %land.lhs.true214, label %if.end227 land.lhs.true214: ; preds = %land.lhs.true210 %156 = ptrtoint ptr %N2.sroa.0.0.copyload to i64 %.fca.0.insert674 = insertvalue [2 x i64] poison, i64 %156, 0 %.fca.1.insert677 = insertvalue [2 x i64] %.fca.0.insert674, i64 %N2.sroa.15.0.copyload, 1 %call216 = call noundef i1 @_ZN4llvm14isNullConstantENS_7SDValueE([2 x i64] %.fca.1.insert677) #6 br i1 %call216, label %if.then217, label %if.end227 if.then217: ; preds = %land.lhs.true214 %157 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp219) #6 %debugLoc.i.i1183 = getelementptr inbounds nuw i8, ptr %N, i64 72 %158 = load ptr, ptr %debugLoc.i.i1183, align 8, !tbaa !72 store ptr %158, ptr %ref.tmp219, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1184 = icmp eq ptr %158, null br i1 %tobool.not.i.i.i.i.i1184, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1189, label %if.then.i.i.i.i.i1185 if.then.i.i.i.i.i1185: ; preds = %if.then217 %call.i.i.i.i.i.i1186 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp219, ptr noundef nonnull align 4 dereferenceable(8) %158, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1189 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1189: ; preds = %if.then.i.i.i.i.i1185, %if.then217 %IROrder.i1187 = getelementptr inbounds nuw i8, ptr %ref.tmp219, i64 8 %IROrder.i.i1188 = getelementptr inbounds nuw i8, ptr %N, i64 68 %159 = load i32, ptr %IROrder.i.i1188, align 4, !tbaa !73 store i32 %159, ptr %IROrder.i1187, align 8, !tbaa !74 %agg.tmp220.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp220.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %160 = ptrtoint ptr %N0.sroa.0.0.copyload to i64 %161 = load ptr, ptr %OperandList.i.i1177, align 8, !tbaa !26 %arrayidx.i.i1191 = getelementptr inbounds nuw i8, ptr %161, i64 40 %agg.tmp222.sroa.0.0.copyload = load i64, ptr %arrayidx.i.i1191, align 8, !tbaa !27 %agg.tmp222.sroa.2.0.call223.sroa_idx = getelementptr inbounds nuw i8, ptr %161, i64 48 %agg.tmp222.sroa.2.0.copyload = load i64, ptr %agg.tmp222.sroa.2.0.call223.sroa_idx, align 8 %.fca.0.insert668 = insertvalue [2 x i64] poison, i64 %agg.tmp220.sroa.0.0.copyload, 0 %.fca.1.insert671 = insertvalue [2 x i64] %.fca.0.insert668, i64 %agg.tmp220.sroa.2.0.copyload, 1 %.fca.0.insert662 = insertvalue [2 x i64] poison, i64 %160, 0 %.fca.1.insert665 = insertvalue [2 x i64] %.fca.0.insert662, i64 %N0.sroa.35.0.copyload, 1 %.fca.0.insert656 = insertvalue [2 x i64] poison, i64 %agg.tmp222.sroa.0.0.copyload, 0 %.fca.1.insert659 = insertvalue [2 x i64] %.fca.0.insert656, i64 %agg.tmp222.sroa.2.0.copyload, 1 %call225 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %157, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp219, [2 x i64] %.fca.1.insert671, [2 x i64] %.fca.1.insert665, [2 x i64] %.fca.1.insert659, [2 x i64] %.fca.1.insert677) #6 %call225.fca.0.extract = extractvalue [2 x i64] %call225, 0 %call225.fca.1.extract = extractvalue [2 x i64] %call225, 1 %162 = inttoptr i64 %call225.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1634 = and i64 %call225.fca.1.extract, 4294967295 %163 = load ptr, ptr %ref.tmp219, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1192 = icmp eq ptr %163, null br i1 %tobool.not.i.i.i.i.i1192, label %_ZN4llvm5SDLocD2Ev.exit1194, label %if.then.i.i.i.i.i1193 if.then.i.i.i.i.i1193: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1189 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp219, ptr noundef nonnull align 4 dereferenceable(8) %163) #6 br label %_ZN4llvm5SDLocD2Ev.exit1194 _ZN4llvm5SDLocD2Ev.exit1194: ; preds = %if.then.i.i.i.i.i1193, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1189 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp219) #6 br label %cleanup463 if.end227: ; preds = %land.lhs.true214, %land.lhs.true210, %land.lhs.true207, %land.lhs.true204, %if.end202, %land.rhs188, %if.end.i.i1150, %land.lhs.true181 %.pr1700 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 switch i32 %.pr1700, label %if.end370 [ i32 235, label %land.lhs.true232 i32 52, label %land.lhs.true232 i32 51, label %land.lhs.true232 ] land.lhs.true232: ; preds = %if.end227, %if.end227, %if.end227 %.pr1703 = load i32, ptr %NodeType.i.i, align 8, !tbaa !35 %cmp234 = icmp eq i32 %.pr1703, 235 br i1 %cmp234, label %if.then235, label %if.end370 if.then235: ; preds = %land.lhs.true232 %164 = ptrtoint ptr %N0.sroa.0.0.copyload to i64 %.fca.0.insert644 = insertvalue [2 x i64] poison, i64 %164, 0 %.fca.1.insert647 = insertvalue [2 x i64] %.fca.0.insert644, i64 %N0.sroa.35.0.copyload, 1 %call237 = call [2 x i64] @_ZN4llvm19peekThroughBitcastsENS_7SDValueE([2 x i64] %.fca.1.insert647) #6 %call237.fca.0.extract = extractvalue [2 x i64] %call237, 0 %call237.fca.1.extract = extractvalue [2 x i64] %call237, 1 %165 = inttoptr i64 %call237.fca.0.extract to ptr %N0Src.sroa.7.8.insert.ext = and i64 %call237.fca.1.extract, 4294967295 %166 = ptrtoint ptr %N1.sroa.0.0.copyload to i64 %.fca.0.insert638 = insertvalue [2 x i64] poison, i64 %166, 0 %.fca.1.insert641 = insertvalue [2 x i64] %.fca.0.insert638, i64 %N1.sroa.39.0.copyload, 1 %call240 = call [2 x i64] @_ZN4llvm19peekThroughBitcastsENS_7SDValueE([2 x i64] %.fca.1.insert641) #6 %call240.fca.0.extract = extractvalue [2 x i64] %call240, 0 %call240.fca.1.extract = extractvalue [2 x i64] %call240, 1 %167 = inttoptr i64 %call240.fca.0.extract to ptr %N1Src.sroa.7.8.insert.ext = and i64 %call240.fca.1.extract, 4294967295 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp242) #6 %ValueList.i.i1200 = getelementptr inbounds nuw i8, ptr %165, i64 48 %168 = load ptr, ptr %ValueList.i.i1200, align 8, !tbaa !4 %arrayidx.i.i1202 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %168, i64 %N0Src.sroa.7.8.insert.ext %169 = load <2 x i64>, ptr %arrayidx.i.i1202, align 8 store <2 x i64> %169, ptr %ref.tmp242, align 16 %170 = extractelement <2 x i64> %169, i64 0 %171 = trunc i64 %170 to i16 %cmp.i.not.i.i = icmp eq i16 %171, 0 br i1 %cmp.i.not.i.i, label %_ZNK4llvm3EVT8isVectorEv.exit.i, label %cond.true.i.i cond.true.i.i: ; preds = %if.then235 %172 = add i16 %171, -17 %spec.select.i.i.i1208 = icmp ult i16 %172, 174 br i1 %spec.select.i.i.i1208, label %if.then.i.i, label %cond.false.i1209 _ZNK4llvm3EVT8isVectorEv.exit.i: ; preds = %if.then235 %call3.i.i = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp242) #7 br i1 %call3.i.i, label %if.end.i.i1214, label %cond.false.i1209 if.then.i.i: ; preds = %cond.true.i.i %conv.i.i.i1211 = and i64 %170, 65535 %sub.i.i.i1212 = add nsw i64 %conv.i.i.i1211, -1 %arrayidx.i.i.i1213 = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable, i64 0, i64 %sub.i.i.i1212 %173 = load i16, ptr %arrayidx.i.i.i1213, align 2, !tbaa !78 br label %_ZNK4llvm3EVT13getScalarTypeEv.exit if.end.i.i1214: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit.i %call4.i.i = call [2 x i64] @_ZNK4llvm3EVT28getExtendedVectorElementTypeEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp242) #6 %call4.fca.0.extract.i.i = extractvalue [2 x i64] %call4.i.i, 0 %retval.sroa.0.0.extract.trunc.i.i = trunc i64 %call4.fca.0.extract.i.i to i16 %call4.fca.1.extract.i.i = extractvalue [2 x i64] %call4.i.i, 1 br label %_ZNK4llvm3EVT13getScalarTypeEv.exit cond.false.i1209: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit.i, %cond.true.i.i %174 = trunc i64 %170 to i16 %175 = extractelement <2 x i64> %169, i64 1 br label %_ZNK4llvm3EVT13getScalarTypeEv.exit _ZNK4llvm3EVT13getScalarTypeEv.exit: ; preds = %cond.false.i1209, %if.end.i.i1214, %if.then.i.i %retval.sroa.0.0.insert.insert.i.pn.i = phi i16 [ %174, %cond.false.i1209 ], [ %173, %if.then.i.i ], [ %retval.sroa.0.0.extract.trunc.i.i, %if.end.i.i1214 ] %retval.sroa.35.0.i.pn.i = phi i64 [ %175, %cond.false.i1209 ], [ 0, %if.then.i.i ], [ %call4.fca.1.extract.i.i, %if.end.i.i1214 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp242) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %N1SrcSVT) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp245) #6 %ValueList.i.i1216 = getelementptr inbounds nuw i8, ptr %167, i64 48 %176 = load ptr, ptr %ValueList.i.i1216, align 8, !tbaa !4 %arrayidx.i.i1218 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %176, i64 %N1Src.sroa.7.8.insert.ext %177 = load <2 x i64>, ptr %arrayidx.i.i1218, align 8 store <2 x i64> %177, ptr %ref.tmp245, align 16 %178 = extractelement <2 x i64> %177, i64 0 %179 = trunc i64 %178 to i16 %cmp.i.not.i.i1224 = icmp eq i16 %179, 0 br i1 %cmp.i.not.i.i1224, label %_ZNK4llvm3EVT8isVectorEv.exit.i1245, label %cond.true.i.i1225 cond.true.i.i1225: ; preds = %_ZNK4llvm3EVT13getScalarTypeEv.exit %180 = add i16 %179, -17 %spec.select.i.i.i1226 = icmp ult i16 %180, 174 %181 = extractelement <2 x i64> %177, i64 1 br i1 %spec.select.i.i.i1226, label %if.then.i.i1235, label %_ZNK4llvm3EVT13getScalarTypeEv.exit1253 _ZNK4llvm3EVT8isVectorEv.exit.i1245: ; preds = %_ZNK4llvm3EVT13getScalarTypeEv.exit %call3.i.i1246 = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp245) #7 %182 = extractelement <2 x i64> %177, i64 1 br i1 %call3.i.i1246, label %if.end.i.i1247, label %_ZNK4llvm3EVT13getScalarTypeEv.exit1253 if.then.i.i1235: ; preds = %cond.true.i.i1225 %conv.i.i.i1236 = and i64 %178, 65535 %sub.i.i.i1237 = add nsw i64 %conv.i.i.i1236, -1 %arrayidx.i.i.i1238 = getelementptr inbounds [243 x i16], ptr @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable, i64 0, i64 %sub.i.i.i1237 %183 = load i16, ptr %arrayidx.i.i.i1238, align 2, !tbaa !78 br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239 if.end.i.i1247: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit.i1245 %call4.i.i1248 = call [2 x i64] @_ZNK4llvm3EVT28getExtendedVectorElementTypeEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp245) #6 %call4.fca.0.extract.i.i1249 = extractvalue [2 x i64] %call4.i.i1248, 0 %retval.sroa.0.0.extract.trunc.i.i1250 = trunc i64 %call4.fca.0.extract.i.i1249 to i16 %retval.sroa.3.0.extract.shift.i.i1251 = and i64 %call4.fca.0.extract.i.i1249, -65536 %call4.fca.1.extract.i.i1252 = extractvalue [2 x i64] %call4.i.i1248, 1 br label %_ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239 _ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239: ; preds = %if.end.i.i1247, %if.then.i.i1235 %retval.sroa.3.sroa.0.0.i.i1240 = phi i64 [ 0, %if.then.i.i1235 ], [ %retval.sroa.3.0.extract.shift.i.i1251, %if.end.i.i1247 ] %retval.sroa.35.0.i.i1241 = phi i64 [ 0, %if.then.i.i1235 ], [ %call4.fca.1.extract.i.i1252, %if.end.i.i1247 ] %retval.sroa.0.0.i.i1242 = phi i16 [ %183, %if.then.i.i1235 ], [ %retval.sroa.0.0.extract.trunc.i.i1250, %if.end.i.i1247 ] %retval.sroa.0.0.insert.ext.i.i1243 = zext i16 %retval.sroa.0.0.i.i1242 to i64 %retval.sroa.0.0.insert.insert.i.i1244 = or disjoint i64 %retval.sroa.3.sroa.0.0.i.i1240, %retval.sroa.0.0.insert.ext.i.i1243 br label %_ZNK4llvm3EVT13getScalarTypeEv.exit1253 _ZNK4llvm3EVT13getScalarTypeEv.exit1253: ; preds = %_ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239, %_ZNK4llvm3EVT8isVectorEv.exit.i1245, %cond.true.i.i1225 %retval.sroa.0.0.insert.insert.i.pn.i1231 = phi i64 [ %retval.sroa.0.0.insert.insert.i.i1244, %_ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239 ], [ %178, %_ZNK4llvm3EVT8isVectorEv.exit.i1245 ], [ %178, %cond.true.i.i1225 ] %retval.sroa.35.0.i.pn.i1232 = phi i64 [ %retval.sroa.35.0.i.i1241, %_ZNK4llvm3EVT20getVectorElementTypeEv.exit.i1239 ], [ %182, %_ZNK4llvm3EVT8isVectorEv.exit.i1245 ], [ %181, %cond.true.i.i1225 ] store i64 %retval.sroa.0.0.insert.insert.i.pn.i1231, ptr %N1SrcSVT, align 8 %call247.fca.1.gep = getelementptr inbounds nuw i8, ptr %N1SrcSVT, i64 8 store i64 %retval.sroa.35.0.i.pn.i1232, ptr %call247.fca.1.gep, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp245) #6 %184 = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 %185 = add i32 %184, -51 %spec.select.i.i1255 = icmp ult i32 %185, 2 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp253) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp257) #6 br i1 %spec.select.i.i1255, label %land.lhs.true252, label %lor.lhs.false249 lor.lhs.false249: ; preds = %_ZNK4llvm3EVT13getScalarTypeEv.exit1253 %186 = trunc i64 %retval.sroa.0.0.insert.insert.i.pn.i1231 to i16 %cmp.not.i.i1256 = icmp eq i16 %retval.sroa.0.0.insert.insert.i.pn.i, %186 br i1 %cmp.not.i.i1256, label %if.end.i.i1258, label %if.end363.critedge if.end.i.i1258: ; preds = %lor.lhs.false249 %cmp8.i.i1259 = icmp ne i16 %retval.sroa.0.0.insert.insert.i.pn.i, 0 %cmp11.i.i1262 = icmp eq i64 %retval.sroa.35.0.i.pn.i, %retval.sroa.35.0.i.pn.i1232 %or.cond1710 = select i1 %cmp8.i.i1259, i1 true, i1 %cmp11.i.i1262 br i1 %or.cond1710, label %land.lhs.true252, label %if.end363.critedge land.lhs.true252: ; preds = %if.end.i.i1258, %_ZNK4llvm3EVT13getScalarTypeEv.exit1253 %187 = load ptr, ptr %ValueList.i.i1200, align 8, !tbaa !4 %arrayidx.i.i1267 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %187, i64 %N0Src.sroa.7.8.insert.ext %188 = load <2 x i64>, ptr %arrayidx.i.i1267, align 8 store <2 x i64> %188, ptr %ref.tmp253, align 16 %189 = bitcast <2 x i64> %188 to <8 x i16> %190 = extractelement <8 x i16> %189, i64 0 %cmp.i.not.i1273 = icmp eq i16 %190, 0 br i1 %cmp.i.not.i1273, label %_ZNK4llvm3EVT8isVectorEv.exit1279, label %cond.true.i1274 cond.true.i1274: ; preds = %land.lhs.true252 %191 = add i16 %190, -17 %spec.select.i.i1275 = icmp ult i16 %191, 174 br i1 %spec.select.i.i1275, label %land.rhs256, label %if.end363.critedge _ZNK4llvm3EVT8isVectorEv.exit1279: ; preds = %land.lhs.true252 %call3.i1278 = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp253) #7 br i1 %call3.i1278, label %land.rhs256, label %if.end363.critedge land.rhs256: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit1279, %cond.true.i1274 %192 = load ptr, ptr %ValueList.i.i1216, align 8, !tbaa !4 %arrayidx.i.i1283 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %192, i64 %N1Src.sroa.7.8.insert.ext %193 = load <2 x i64>, ptr %arrayidx.i.i1283, align 8 store <2 x i64> %193, ptr %ref.tmp257, align 16 %194 = bitcast <2 x i64> %193 to <8 x i16> %195 = extractelement <8 x i16> %194, i64 0 %cmp.i.not.i1289 = icmp eq i16 %195, 0 br i1 %cmp.i.not.i1289, label %_ZNK4llvm3EVT8isVectorEv.exit1295, label %cond.true.i1290 cond.true.i1290: ; preds = %land.rhs256 %196 = add i16 %195, -17 %spec.select.i.i1291 = icmp ult i16 %196, 174 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp257) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp253) #6 br i1 %spec.select.i.i1291, label %if.then261, label %cleanup364 _ZNK4llvm3EVT8isVectorEv.exit1295: ; preds = %land.rhs256 %call3.i1294 = call noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp257) #7 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp257) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp253) #6 br i1 %call3.i1294, label %if.then261, label %cleanup364 if.then261: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit1295, %cond.true.i1290 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %DL) #6 %debugLoc.i.i1296 = getelementptr inbounds nuw i8, ptr %N, i64 72 %197 = load ptr, ptr %debugLoc.i.i1296, align 8, !tbaa !72 store ptr %197, ptr %DL, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1297 = icmp eq ptr %197, null br i1 %tobool.not.i.i.i.i.i1297, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1302, label %if.then.i.i.i.i.i1298 if.then.i.i.i.i.i1298: ; preds = %if.then261 %call.i.i.i.i.i.i1299 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %DL, ptr noundef nonnull align 4 dereferenceable(8) %197, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1302 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1302: ; preds = %if.then.i.i.i.i.i1298, %if.then261 %IROrder.i1300 = getelementptr inbounds nuw i8, ptr %DL, i64 8 %IROrder.i.i1301 = getelementptr inbounds nuw i8, ptr %N, i64 68 %198 = load i32, ptr %IROrder.i.i1301, align 4, !tbaa !73 store i32 %198, ptr %IROrder.i1300, align 8, !tbaa !74 %199 = load ptr, ptr %this, align 8, !tbaa !43 %Context.i = getelementptr inbounds nuw i8, ptr %199, i64 64 %200 = load ptr, ptr %Context.i, align 8, !tbaa !79 %call264 = call i64 @_ZNK4llvm3EVT21getVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) %NumElts.sroa.0.sroa.0.0.extract.trunc = trunc i64 %call264 to i32 %call266 = call noundef i64 @_ZNK4llvm3EVT19getScalarSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %VT) %conv267 = and i64 %call266, 4294967295 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp268) #6 %call269 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %N1SrcSVT) %call269.fca.0.extract = extractvalue [2 x i64] %call269, 0 %call269.fca.1.extract = extractvalue [2 x i64] %call269, 1 store i64 %call269.fca.0.extract, ptr %ref.tmp268, align 8 %tmp.coerce270.sroa.2.0.ref.tmp268.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp268, i64 8 %tmp.coerce270.sroa.2.0.extract.trunc = trunc i64 %call269.fca.1.extract to i8 store i8 %tmp.coerce270.sroa.2.0.extract.trunc, ptr %tmp.coerce270.sroa.2.0.ref.tmp268.sroa_idx, align 8 %call271 = call noundef i64 @_ZNK4llvm8TypeSizecvyEv(ptr noundef nonnull align 8 dereferenceable(9) %ref.tmp268) #6 %rem = urem i64 %conv267, %call271 %cmp272 = icmp eq i64 %rem, 0 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp268) #6 br i1 %cmp272, label %if.then273, label %if.else291 if.then273: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1302 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp275) #6 %call276 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %N1SrcSVT) %call276.fca.0.extract = extractvalue [2 x i64] %call276, 0 %call276.fca.1.extract = extractvalue [2 x i64] %call276, 1 store i64 %call276.fca.0.extract, ptr %ref.tmp275, align 8 %tmp.coerce277.sroa.2.0.ref.tmp275.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp275, i64 8 %tmp.coerce277.sroa.2.0.extract.trunc = trunc i64 %call276.fca.1.extract to i8 store i8 %tmp.coerce277.sroa.2.0.extract.trunc, ptr %tmp.coerce277.sroa.2.0.ref.tmp275.sroa_idx, align 8 %call278 = call noundef i64 @_ZNK4llvm8TypeSizecvyEv(ptr noundef nonnull align 8 dereferenceable(9) %ref.tmp275) #6 %div = udiv i64 %conv267, %call278 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp275) #6 %agg.tmp281.sroa.0.0.copyload = load i64, ptr %N1SrcSVT, align 8 %agg.tmp281.sroa.2.0.copyload = load i64, ptr %call247.fca.1.gep, align 8, !tbaa !24 %Copy.sroa.6.0.extract.shift.i = and i64 %call264, 1095216660480 %mul.i.i = mul i64 %div, %call264 %Copy.sroa.0.0.insert.ext.i = and i64 %mul.i.i, 4294967295 %Copy.sroa.0.0.insert.insert.i = or disjoint i64 %Copy.sroa.0.0.insert.ext.i, %Copy.sroa.6.0.extract.shift.i %.fca.0.insert621 = insertvalue [2 x i64] poison, i64 %agg.tmp281.sroa.0.0.copyload, 0 %.fca.1.insert624 = insertvalue [2 x i64] %.fca.0.insert621, i64 %agg.tmp281.sroa.2.0.copyload, 1 %call285 = call [2 x i64] @_ZN4llvm3EVT11getVectorVTERNS_11LLVMContextES0_NS_12ElementCountE(ptr noundef nonnull align 8 dereferenceable(8) %200, [2 x i64] %.fca.1.insert624, i64 %Copy.sroa.0.0.insert.insert.i) %201 = load ptr, ptr %this, align 8, !tbaa !43 %mul = mul i64 %div, %retval.0.i.i.i.i %call289 = call [2 x i64] @_ZN4llvm12SelectionDAG20getVectorIdxConstantEyRKNS_5SDLocEb(ptr noundef nonnull align 8 dereferenceable(880) %201, i64 noundef %mul, ptr noundef nonnull align 8 dereferenceable(12) %DL, i1 noundef false) #6 br label %if.end328 if.else291: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1302 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp292) #6 %call293 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %N1SrcSVT) %call293.fca.0.extract = extractvalue [2 x i64] %call293, 0 %call293.fca.1.extract = extractvalue [2 x i64] %call293, 1 store i64 %call293.fca.0.extract, ptr %ref.tmp292, align 8 %tmp.coerce294.sroa.2.0.ref.tmp292.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp292, i64 8 %tmp.coerce294.sroa.2.0.extract.trunc = trunc i64 %call293.fca.1.extract to i8 store i8 %tmp.coerce294.sroa.2.0.extract.trunc, ptr %tmp.coerce294.sroa.2.0.ref.tmp292.sroa_idx, align 8 %call295 = call noundef i64 @_ZNK4llvm8TypeSizecvyEv(ptr noundef nonnull align 8 dereferenceable(9) %ref.tmp292) #6 %rem297 = urem i64 %call295, %conv267 %cmp298 = icmp eq i64 %rem297, 0 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp292) #6 br i1 %cmp298, label %if.then299, label %cleanup354 if.then299: ; preds = %if.else291 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp301) #6 %call302 = call [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16) %N1SrcSVT) %call302.fca.0.extract = extractvalue [2 x i64] %call302, 0 %call302.fca.1.extract = extractvalue [2 x i64] %call302, 1 store i64 %call302.fca.0.extract, ptr %ref.tmp301, align 8 %tmp.coerce303.sroa.2.0.ref.tmp301.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp301, i64 8 %tmp.coerce303.sroa.2.0.extract.trunc = trunc i64 %call302.fca.1.extract to i8 store i8 %tmp.coerce303.sroa.2.0.extract.trunc, ptr %tmp.coerce303.sroa.2.0.ref.tmp301.sroa_idx, align 8 %call304 = call noundef i64 @_ZNK4llvm8TypeSizecvyEv(ptr noundef nonnull align 8 dereferenceable(9) %ref.tmp301) #6 %div306 = udiv i64 %call304, %conv267 %conv307 = trunc i64 %div306 to i32 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp301) #6 %NumElts.sroa.0.sroa.0.0.extract.trunc.frozen = freeze i32 %NumElts.sroa.0.sroa.0.0.extract.trunc %div.i = udiv i32 %NumElts.sroa.0.sroa.0.0.extract.trunc.frozen, %conv307 %202 = mul i32 %div.i, %conv307 %rem.i.decomposed = sub i32 %NumElts.sroa.0.sroa.0.0.extract.trunc.frozen, %202 %cmp.i1304 = icmp eq i32 %rem.i.decomposed, 0 br i1 %cmp.i1304, label %land.lhs.true309, label %cleanup354 land.lhs.true309: ; preds = %if.then299 %conv310 = and i64 %div306, 4294967295 %retval.0.i.i.i.i.frozen = freeze i64 %retval.0.i.i.i.i %div323 = udiv i64 %retval.0.i.i.i.i.frozen, %conv310 %203 = mul i64 %div323, %conv310 %rem311.decomposed = sub i64 %retval.0.i.i.i.i.frozen, %203 %cmp312 = icmp eq i64 %rem311.decomposed, 0 br i1 %cmp312, label %if.then313, label %cleanup354 if.then313: ; preds = %land.lhs.true309 %agg.tmp315.sroa.0.0.copyload = load i64, ptr %N1SrcSVT, align 8 %agg.tmp315.sroa.2.0.copyload = load i64, ptr %call247.fca.1.gep, align 8, !tbaa !24 %retval.sroa.2.0.insert.shift.i.i = and i64 %call264, 1095216660480 %retval.sroa.0.0.insert.ext.i.i1305 = zext i32 %div.i to i64 %retval.sroa.0.0.insert.insert.i.i1306 = or disjoint i64 %retval.sroa.2.0.insert.shift.i.i, %retval.sroa.0.0.insert.ext.i.i1305 %.fca.0.insert612 = insertvalue [2 x i64] poison, i64 %agg.tmp315.sroa.0.0.copyload, 0 %.fca.1.insert615 = insertvalue [2 x i64] %.fca.0.insert612, i64 %agg.tmp315.sroa.2.0.copyload, 1 %call319 = call [2 x i64] @_ZN4llvm3EVT11getVectorVTERNS_11LLVMContextES0_NS_12ElementCountE(ptr noundef nonnull align 8 dereferenceable(8) %200, [2 x i64] %.fca.1.insert615, i64 %retval.sroa.0.0.insert.insert.i.i1306) %204 = load ptr, ptr %this, align 8, !tbaa !43 %call324 = call [2 x i64] @_ZN4llvm12SelectionDAG20getVectorIdxConstantEyRKNS_5SDLocEb(ptr noundef nonnull align 8 dereferenceable(880) %204, i64 noundef %div323, ptr noundef nonnull align 8 dereferenceable(12) %DL, i1 noundef false) #6 br label %if.end328 if.end328: ; preds = %if.then313, %if.then273 %call289.pn = phi [2 x i64] [ %call289, %if.then273 ], [ %call324, %if.then313 ] %call285.pn = phi [2 x i64] [ %call285, %if.then273 ], [ %call319, %if.then313 ] %NewIdx.sroa.8.0.in = extractvalue [2 x i64] %call289.pn, 1 %NewIdx.sroa.8.0 = and i64 %NewIdx.sroa.8.0.in, 4294967295 %NewIdx.sroa.0.0.in = extractvalue [2 x i64] %call289.pn, 0 %cmp.i1307.not = icmp eq i64 %NewIdx.sroa.0.0.in, 0 br i1 %cmp.i1307.not, label %cleanup354, label %land.lhs.true330 land.lhs.true330: ; preds = %if.end328 %205 = getelementptr inbounds nuw i8, ptr %this, i64 8 %this.val = load ptr, ptr %205, align 8, !tbaa !147 %206 = getelementptr inbounds nuw i8, ptr %this, i64 33 %this.val884 = load i8, ptr %206, align 1, !tbaa !148, !range !149, !noundef !150 %call332 = call fastcc noundef i1 @_ZN12_GLOBAL__N_111DAGCombiner12hasOperationEjN4llvm3EVTE(ptr %this.val, i8 %this.val884, i32 noundef 161, [2 x i64] %call285.pn) br i1 %call332, label %if.then333, label %cleanup354 if.then333: ; preds = %land.lhs.true330 %207 = load ptr, ptr %this, align 8, !tbaa !43 %.fca.1.insert591 = insertvalue [2 x i64] %call237, i64 %N0Src.sroa.7.8.insert.ext, 1 %call337 = call [2 x i64] @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %207, [2 x i64] %call285.pn, [2 x i64] %.fca.1.insert591) #6 %call337.fca.1.extract = extractvalue [2 x i64] %call337, 1 %Res.sroa.6.8.insert.ext601 = and i64 %call337.fca.1.extract, 4294967295 %208 = load ptr, ptr %this, align 8, !tbaa !43 %.fca.1.insert579 = insertvalue [2 x i64] %call337, i64 %Res.sroa.6.8.insert.ext601, 1 %.fca.1.insert573 = insertvalue [2 x i64] %call240, i64 %N1Src.sroa.7.8.insert.ext, 1 %.fca.1.insert567 = insertvalue [2 x i64] %call289.pn, i64 %NewIdx.sroa.8.0, 1 %call345 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %208, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %DL, [2 x i64] %call285.pn, [2 x i64] %.fca.1.insert579, [2 x i64] %.fca.1.insert573, [2 x i64] %.fca.1.insert567) #6 %call345.fca.1.extract = extractvalue [2 x i64] %call345, 1 %Res.sroa.6.8.insert.ext = and i64 %call345.fca.1.extract, 4294967295 %209 = load ptr, ptr %this, align 8, !tbaa !43 %agg.tmp348.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp348.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %.fca.0.insert558 = insertvalue [2 x i64] poison, i64 %agg.tmp348.sroa.0.0.copyload, 0 %.fca.1.insert561 = insertvalue [2 x i64] %.fca.0.insert558, i64 %agg.tmp348.sroa.2.0.copyload, 1 %.fca.1.insert555 = insertvalue [2 x i64] %call345, i64 %Res.sroa.6.8.insert.ext, 1 %call350 = call [2 x i64] @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880) %209, [2 x i64] %.fca.1.insert561, [2 x i64] %.fca.1.insert555) #6 %call350.fca.0.extract = extractvalue [2 x i64] %call350, 0 %call350.fca.1.extract = extractvalue [2 x i64] %call350, 1 %210 = inttoptr i64 %call350.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1630 = and i64 %call350.fca.1.extract, 4294967295 %211 = load ptr, ptr %DL, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1308 = icmp eq ptr %211, null br i1 %tobool.not.i.i.i.i.i1308, label %_ZN4llvm5SDLocD2Ev.exit1310, label %if.then.i.i.i.i.i1309 if.then.i.i.i.i.i1309: ; preds = %if.then333 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %DL, ptr noundef nonnull align 4 dereferenceable(8) %211) #6 br label %_ZN4llvm5SDLocD2Ev.exit1310 _ZN4llvm5SDLocD2Ev.exit1310: ; preds = %if.then.i.i.i.i.i1309, %if.then333 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %DL) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %N1SrcSVT) #6 br label %cleanup463 cleanup354: ; preds = %land.lhs.true330, %if.end328, %land.lhs.true309, %if.then299, %if.else291 %212 = load ptr, ptr %DL, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1311 = icmp eq ptr %212, null br i1 %tobool.not.i.i.i.i.i1311, label %_ZN4llvm5SDLocD2Ev.exit1313, label %if.then.i.i.i.i.i1312 if.then.i.i.i.i.i1312: ; preds = %cleanup354 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %DL, ptr noundef nonnull align 4 dereferenceable(8) %212) #6 br label %_ZN4llvm5SDLocD2Ev.exit1313 _ZN4llvm5SDLocD2Ev.exit1313: ; preds = %if.then.i.i.i.i.i1312, %cleanup354 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %DL) #6 %.pr1688.pre.pre = load i32, ptr %NodeType.i.i888, align 8, !tbaa !35 br label %cleanup364 if.end363.critedge: ; preds = %_ZNK4llvm3EVT8isVectorEv.exit1279, %cond.true.i1274, %if.end.i.i1258, %lor.lhs.false249 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp257) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp253) #6 br label %cleanup364 cleanup364: ; preds = %if.end363.critedge, %_ZN4llvm5SDLocD2Ev.exit1313, %_ZNK4llvm3EVT8isVectorEv.exit1295, %cond.true.i1290 %.pr1688.pre = phi i32 [ %184, %cond.true.i1290 ], [ %184, %_ZNK4llvm3EVT8isVectorEv.exit1295 ], [ %184, %if.end363.critedge ], [ %.pr1688.pre.pre, %_ZN4llvm5SDLocD2Ev.exit1313 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %N1SrcSVT) #6 br label %if.end370 if.end370: ; preds = %cleanup364, %land.lhs.true232, %if.end227 %213 = phi i32 [ %.pr1700, %if.end227 ], [ %.pr1700, %land.lhs.true232 ], [ %.pr1688.pre, %cleanup364 ] %cmp372 = icmp eq i32 %213, 161 br i1 %cmp372, label %land.lhs.true373, label %if.end415 land.lhs.true373: ; preds = %if.end370 %N0.sroa.35.8.extract.trunc1622 = trunc i64 %N0.sroa.35.0.copyload to i32 %UseList.i.i.i.i1316 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 56 %__begin2.sroa.0.028.i.i1317 = load ptr, ptr %UseList.i.i.i.i1316, align 8, !tbaa !76 %cmp.i.i.not29.i.i1318 = icmp eq ptr %__begin2.sroa.0.028.i.i1317, null br i1 %cmp.i.i.not29.i.i1318, label %if.end458.critedge.sink.split, label %for.body.i.i1319 for.cond.i.i1329: ; preds = %for.body.i.i1319 %NUses.addr.2.i.i1325 = select i1 %cmp.i.i1323, i32 %NUses.addr.030.i.i1321, i32 0 %Next.i.i.i.i1330 = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i1320, i64 32 %__begin2.sroa.0.0.i.i1331 = load ptr, ptr %Next.i.i.i.i1330, align 8, !tbaa !76 %cmp.i.i.not.i.i1332 = icmp eq ptr %__begin2.sroa.0.0.i.i1331, null br i1 %cmp.i.i.not.i.i1332, label %_ZNK4llvm7SDValue9hasOneUseEv.exit1333, label %for.body.i.i1319 for.body.i.i1319: ; preds = %for.cond.i.i1329, %land.lhs.true373 %__begin2.sroa.0.031.i.i1320 = phi ptr [ %__begin2.sroa.0.0.i.i1331, %for.cond.i.i1329 ], [ %__begin2.sroa.0.028.i.i1317, %land.lhs.true373 ] %NUses.addr.030.i.i1321 = phi i32 [ %NUses.addr.2.i.i1325, %for.cond.i.i1329 ], [ 1, %land.lhs.true373 ] %ResNo.i.i.i.i1322 = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i1320, i64 8 %214 = load i32, ptr %ResNo.i.i.i.i1322, align 8, !tbaa !38 %cmp.i.i1323 = icmp ne i32 %214, %N0.sroa.35.8.extract.trunc1622 %cmp9.i.i1324 = icmp ne i32 %NUses.addr.030.i.i1321, 0 %cond.i.i1326 = select i1 %cmp.i.i1323, i1 true, i1 %cmp9.i.i1324 br i1 %cond.i.i1326, label %for.cond.i.i1329, label %if.end415 _ZNK4llvm7SDValue9hasOneUseEv.exit1333: ; preds = %for.cond.i.i1329 %215 = icmp eq i32 %NUses.addr.2.i.i1325, 0 br i1 %215, label %land.rhs375, label %if.end415 land.rhs375: ; preds = %_ZNK4llvm7SDValue9hasOneUseEv.exit1333 %ValueList.i.i1335 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 48 %216 = load ptr, ptr %ValueList.i.i1335, align 8, !tbaa !4 %idxprom.i.i1336 = and i64 %N1.sroa.39.0.copyload, 4294967295 %arrayidx.i.i1337 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %216, i64 %idxprom.i.i1336 %retval.sroa.0.0.copyload.i.i1338 = load i64, ptr %arrayidx.i.i1337, align 8 %OperandList.i.i1343 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 40 %217 = load ptr, ptr %OperandList.i.i1343, align 8, !tbaa !26 %arrayidx.i.i1344 = getelementptr inbounds nuw i8, ptr %217, i64 40 %218 = load ptr, ptr %arrayidx.i.i1344, align 8, !tbaa !36 %ResNo.i1345 = getelementptr inbounds nuw i8, ptr %217, i64 48 %219 = load i32, ptr %ResNo.i1345, align 8, !tbaa !38 %ValueList.i.i1346 = getelementptr inbounds nuw i8, ptr %218, i64 48 %220 = load ptr, ptr %ValueList.i.i1346, align 8, !tbaa !4 %idxprom.i.i1347 = zext i32 %219 to i64 %arrayidx.i.i1348 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %220, i64 %idxprom.i.i1347 %retval.sroa.0.0.copyload.i.i1349 = load i64, ptr %arrayidx.i.i1348, align 8 %ref.tmp376.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i.i1338 to i16 %221 = trunc i64 %retval.sroa.0.0.copyload.i.i1349 to i16 %cmp.not.i.i1354 = icmp eq i16 %ref.tmp376.sroa.0.0.extract.trunc, %221 br i1 %cmp.not.i.i1354, label %if.end.i.i1356, label %if.end415 if.end.i.i1356: ; preds = %land.rhs375 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1350 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1348, i64 8 %retval.sroa.2.0.copyload.i.i1351 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1350, align 8, !tbaa !24 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1339 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1337, i64 8 %retval.sroa.2.0.copyload.i.i1340 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1339, align 8, !tbaa !24 %cmp8.i.i1357 = icmp ne i16 %ref.tmp376.sroa.0.0.extract.trunc, 0 %cmp11.i.i1360 = icmp eq i64 %retval.sroa.2.0.copyload.i.i1340, %retval.sroa.2.0.copyload.i.i1351 %or.cond1711 = select i1 %cmp8.i.i1357, i1 true, i1 %cmp11.i.i1360 br i1 %or.cond1711, label %if.then383, label %if.end415 if.then383: ; preds = %if.end.i.i1356 %arrayidx.i.i.i1362 = getelementptr inbounds nuw i8, ptr %217, i64 80 %222 = load ptr, ptr %arrayidx.i.i.i1362, align 8, !tbaa !36 %Value.i.i.i = getelementptr inbounds nuw i8, ptr %222, i64 88 %223 = load ptr, ptr %Value.i.i.i, align 8, !tbaa !29 %Val.i.i.i.i = getelementptr inbounds nuw i8, ptr %223, i64 24 %BitWidth.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %223, i64 32 %224 = load i32, ptr %BitWidth.i.i.i.i.i.i, align 8, !tbaa !32 %cmp.i.i.i.i.i.i = icmp ult i32 %224, 65 %225 = load ptr, ptr %Val.i.i.i.i, align 8 %retval.0.in.i.i.i.i.i = select i1 %cmp.i.i.i.i.i.i, ptr %Val.i.i.i.i, ptr %225 %retval.0.i.i.i.i.i = load i64, ptr %retval.0.in.i.i.i.i.i, align 8, !tbaa !34 %conv386 = and i64 %retval.0.i.i.i.i.i, 4294967295 %cmp387.not = icmp ult i64 %retval.0.i.i.i.i, %conv386 br i1 %cmp387.not, label %if.then388, label %if.end415 if.then388: ; preds = %if.then383 %226 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp390) #6 %debugLoc.i.i1363 = getelementptr inbounds nuw i8, ptr %N, i64 72 %227 = load ptr, ptr %debugLoc.i.i1363, align 8, !tbaa !72 store ptr %227, ptr %ref.tmp390, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1364 = icmp eq ptr %227, null br i1 %tobool.not.i.i.i.i.i1364, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1369, label %if.then.i.i.i.i.i1365 if.then.i.i.i.i.i1365: ; preds = %if.then388 %call.i.i.i.i.i.i1366 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp390, ptr noundef nonnull align 4 dereferenceable(8) %227, i64 1) #6 %.pre1727 = load ptr, ptr %OperandList.i.i1343, align 8, !tbaa !26 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1369 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1369: ; preds = %if.then.i.i.i.i.i1365, %if.then388 %228 = phi ptr [ %217, %if.then388 ], [ %.pre1727, %if.then.i.i.i.i.i1365 ] %IROrder.i1367 = getelementptr inbounds nuw i8, ptr %ref.tmp390, i64 8 %IROrder.i.i1368 = getelementptr inbounds nuw i8, ptr %N, i64 68 %229 = load i32, ptr %IROrder.i.i1368, align 4, !tbaa !73 store i32 %229, ptr %IROrder.i1367, align 8, !tbaa !74 %agg.tmp391.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp391.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %agg.tmp392.sroa.0.0.copyload = load i64, ptr %228, align 8, !tbaa !27 %agg.tmp392.sroa.2.0.call393.sroa_idx = getelementptr inbounds nuw i8, ptr %228, i64 8 %agg.tmp392.sroa.2.0.copyload = load i64, ptr %agg.tmp392.sroa.2.0.call393.sroa_idx, align 8 %230 = ptrtoint ptr %N1.sroa.0.0.copyload to i64 %231 = ptrtoint ptr %N2.sroa.0.0.copyload to i64 %.fca.0.insert540 = insertvalue [2 x i64] poison, i64 %agg.tmp391.sroa.0.0.copyload, 0 %.fca.1.insert543 = insertvalue [2 x i64] %.fca.0.insert540, i64 %agg.tmp391.sroa.2.0.copyload, 1 %.fca.0.insert534 = insertvalue [2 x i64] poison, i64 %agg.tmp392.sroa.0.0.copyload, 0 %.fca.1.insert537 = insertvalue [2 x i64] %.fca.0.insert534, i64 %agg.tmp392.sroa.2.0.copyload, 1 %.fca.0.insert528 = insertvalue [2 x i64] poison, i64 %230, 0 %.fca.1.insert531 = insertvalue [2 x i64] %.fca.0.insert528, i64 %N1.sroa.39.0.copyload, 1 %.fca.0.insert522 = insertvalue [2 x i64] poison, i64 %231, 0 %.fca.1.insert525 = insertvalue [2 x i64] %.fca.0.insert522, i64 %N2.sroa.15.0.copyload, 1 %call396 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %226, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp390, [2 x i64] %.fca.1.insert543, [2 x i64] %.fca.1.insert537, [2 x i64] %.fca.1.insert531, [2 x i64] %.fca.1.insert525) #6 %call396.fca.0.extract = extractvalue [2 x i64] %call396, 0 %call396.fca.1.extract = extractvalue [2 x i64] %call396, 1 %232 = inttoptr i64 %call396.fca.0.extract to ptr %NewOp.sroa.5.8.insert.ext = and i64 %call396.fca.1.extract, 4294967295 %233 = load ptr, ptr %ref.tmp390, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1372 = icmp eq ptr %233, null br i1 %tobool.not.i.i.i.i.i1372, label %_ZN4llvm5SDLocD2Ev.exit1374, label %if.then.i.i.i.i.i1373 if.then.i.i.i.i.i1373: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1369 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp390, ptr noundef nonnull align 4 dereferenceable(8) %233) #6 br label %_ZN4llvm5SDLocD2Ev.exit1374 _ZN4llvm5SDLocD2Ev.exit1374: ; preds = %if.then.i.i.i.i.i1373, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1369 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp390) #6 call fastcc void @_ZN12_GLOBAL__N_111DAGCombiner13AddToWorklistEPN4llvm6SDNodeEbb(ptr noundef nonnull align 8 dereferenceable(956) %this, ptr noundef %232, i1 noundef true, i1 noundef false) %234 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp400) #6 %debugLoc.i.i1375 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 72 %235 = load ptr, ptr %debugLoc.i.i1375, align 8, !tbaa !72 store ptr %235, ptr %ref.tmp400, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1376 = icmp eq ptr %235, null br i1 %tobool.not.i.i.i.i.i1376, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1381, label %if.then.i.i.i.i.i1377 if.then.i.i.i.i.i1377: ; preds = %_ZN4llvm5SDLocD2Ev.exit1374 %call.i.i.i.i.i.i1378 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp400, ptr noundef nonnull align 4 dereferenceable(8) %235, i64 1) #6 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1381 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1381: ; preds = %if.then.i.i.i.i.i1377, %_ZN4llvm5SDLocD2Ev.exit1374 %IROrder.i1379 = getelementptr inbounds nuw i8, ptr %ref.tmp400, i64 8 %IROrder.i.i1380 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 68 %236 = load i32, ptr %IROrder.i.i1380, align 4, !tbaa !73 store i32 %236, ptr %IROrder.i1379, align 8, !tbaa !74 %agg.tmp402.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp402.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %237 = load ptr, ptr %OperandList.i.i1343, align 8, !tbaa !26 %arrayidx.i.i1383 = getelementptr inbounds nuw i8, ptr %237, i64 40 %agg.tmp404.sroa.0.0.copyload = load i64, ptr %arrayidx.i.i1383, align 8, !tbaa !27 %agg.tmp404.sroa.2.0.call405.sroa_idx = getelementptr inbounds nuw i8, ptr %237, i64 48 %agg.tmp404.sroa.2.0.copyload = load i64, ptr %agg.tmp404.sroa.2.0.call405.sroa_idx, align 8 %arrayidx.i.i1385 = getelementptr inbounds nuw i8, ptr %237, i64 80 %agg.tmp406.sroa.0.0.copyload = load i64, ptr %arrayidx.i.i1385, align 8, !tbaa !27 %agg.tmp406.sroa.2.0.call407.sroa_idx = getelementptr inbounds nuw i8, ptr %237, i64 88 %agg.tmp406.sroa.2.0.copyload = load i64, ptr %agg.tmp406.sroa.2.0.call407.sroa_idx, align 8 %.fca.0.insert516 = insertvalue [2 x i64] poison, i64 %agg.tmp402.sroa.0.0.copyload, 0 %.fca.1.insert519 = insertvalue [2 x i64] %.fca.0.insert516, i64 %agg.tmp402.sroa.2.0.copyload, 1 %.fca.1.insert513 = insertvalue [2 x i64] %call396, i64 %NewOp.sroa.5.8.insert.ext, 1 %.fca.0.insert504 = insertvalue [2 x i64] poison, i64 %agg.tmp404.sroa.0.0.copyload, 0 %.fca.1.insert507 = insertvalue [2 x i64] %.fca.0.insert504, i64 %agg.tmp404.sroa.2.0.copyload, 1 %.fca.0.insert498 = insertvalue [2 x i64] poison, i64 %agg.tmp406.sroa.0.0.copyload, 0 %.fca.1.insert501 = insertvalue [2 x i64] %.fca.0.insert498, i64 %agg.tmp406.sroa.2.0.copyload, 1 %call408 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880) %234, i32 noundef 161, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp400, [2 x i64] %.fca.1.insert519, [2 x i64] %.fca.1.insert513, [2 x i64] %.fca.1.insert507, [2 x i64] %.fca.1.insert501) #6 %call408.fca.0.extract = extractvalue [2 x i64] %call408, 0 %call408.fca.1.extract = extractvalue [2 x i64] %call408, 1 %238 = inttoptr i64 %call408.fca.0.extract to ptr %retval.sroa.17.8.insert.ext1626 = and i64 %call408.fca.1.extract, 4294967295 %239 = load ptr, ptr %ref.tmp400, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1386 = icmp eq ptr %239, null br i1 %tobool.not.i.i.i.i.i1386, label %_ZN4llvm5SDLocD2Ev.exit1388, label %if.then.i.i.i.i.i1387 if.then.i.i.i.i.i1387: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1381 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp400, ptr noundef nonnull align 4 dereferenceable(8) %239) #6 br label %_ZN4llvm5SDLocD2Ev.exit1388 _ZN4llvm5SDLocD2Ev.exit1388: ; preds = %if.then.i.i.i.i.i1387, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1381 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp400) #6 br label %cleanup463 if.end415: ; preds = %if.then383, %if.end.i.i1356, %land.rhs375, %_ZNK4llvm7SDValue9hasOneUseEv.exit1333, %for.body.i.i1319, %if.end370 %cmp417 = icmp eq i32 %213, 160 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp428) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp433) #6 br i1 %cmp417, label %land.lhs.true418, label %if.end458.critedge land.lhs.true418: ; preds = %if.end415 %N0.sroa.35.8.extract.trunc1624 = trunc i64 %N0.sroa.35.0.copyload to i32 %UseList.i.i.i.i1391 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 56 %__begin2.sroa.0.028.i.i1392 = load ptr, ptr %UseList.i.i.i.i1391, align 8, !tbaa !76 %cmp.i.i.not29.i.i1393 = icmp eq ptr %__begin2.sroa.0.028.i.i1392, null br i1 %cmp.i.i.not29.i.i1393, label %if.end458.critedge, label %for.body.i.i1394 for.cond.i.i1404: ; preds = %for.body.i.i1394 %NUses.addr.2.i.i1400 = select i1 %cmp.i.i1398, i32 %NUses.addr.030.i.i1396, i32 0 %Next.i.i.i.i1405 = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i1395, i64 32 %__begin2.sroa.0.0.i.i1406 = load ptr, ptr %Next.i.i.i.i1405, align 8, !tbaa !76 %cmp.i.i.not.i.i1407 = icmp eq ptr %__begin2.sroa.0.0.i.i1406, null br i1 %cmp.i.i.not.i.i1407, label %_ZNK4llvm7SDValue9hasOneUseEv.exit1408, label %for.body.i.i1394 for.body.i.i1394: ; preds = %for.cond.i.i1404, %land.lhs.true418 %__begin2.sroa.0.031.i.i1395 = phi ptr [ %__begin2.sroa.0.0.i.i1406, %for.cond.i.i1404 ], [ %__begin2.sroa.0.028.i.i1392, %land.lhs.true418 ] %NUses.addr.030.i.i1396 = phi i32 [ %NUses.addr.2.i.i1400, %for.cond.i.i1404 ], [ 1, %land.lhs.true418 ] %ResNo.i.i.i.i1397 = getelementptr inbounds nuw i8, ptr %__begin2.sroa.0.031.i.i1395, i64 8 %240 = load i32, ptr %ResNo.i.i.i.i1397, align 8, !tbaa !38 %cmp.i.i1398 = icmp ne i32 %240, %N0.sroa.35.8.extract.trunc1624 %cmp9.i.i1399 = icmp ne i32 %NUses.addr.030.i.i1396, 0 %cond.i.i1401 = select i1 %cmp.i.i1398, i1 true, i1 %cmp9.i.i1399 br i1 %cond.i.i1401, label %for.cond.i.i1404, label %if.end458.critedge _ZNK4llvm7SDValue9hasOneUseEv.exit1408: ; preds = %for.cond.i.i1404 %241 = icmp eq i32 %NUses.addr.2.i.i1400, 0 br i1 %241, label %land.lhs.true420, label %if.end458.critedge land.lhs.true420: ; preds = %_ZNK4llvm7SDValue9hasOneUseEv.exit1408 %OperandList.i.i1409 = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 40 %242 = load ptr, ptr %OperandList.i.i1409, align 8, !tbaa !26 %243 = load ptr, ptr %242, align 8, !tbaa !36 %ResNo.i1411 = getelementptr inbounds nuw i8, ptr %242, i64 8 %244 = load i32, ptr %ResNo.i1411, align 8, !tbaa !38 %ValueList.i.i1412 = getelementptr inbounds nuw i8, ptr %243, i64 48 %245 = load ptr, ptr %ValueList.i.i1412, align 8, !tbaa !4 %idxprom.i.i1413 = zext i32 %244 to i64 %arrayidx.i.i1414 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %245, i64 %idxprom.i.i1413 %246 = load <2 x i64>, ptr %arrayidx.i.i1414, align 8 %N1.sroa.39.8.extract.trunc1582 = trunc i64 %N1.sroa.39.0.copyload to i32 %ValueList.i.i1421 = getelementptr inbounds nuw i8, ptr %N1.sroa.0.0.copyload, i64 48 %247 = load ptr, ptr %ValueList.i.i1421, align 8, !tbaa !4 %idxprom.i.i1422 = and i64 %N1.sroa.39.0.copyload, 4294967295 %arrayidx.i.i1423 = getelementptr inbounds nuw %"struct.llvm::EVT", ptr %247, i64 %idxprom.i.i1422 %retval.sroa.0.0.copyload.i.i1424 = load i64, ptr %arrayidx.i.i1423, align 8 %248 = bitcast <2 x i64> %246 to <8 x i16> %ref.tmp421.sroa.0.0.extract.trunc = extractelement <8 x i16> %248, i64 0 %249 = trunc i64 %retval.sroa.0.0.copyload.i.i1424 to i16 %cmp.not.i.i1429 = icmp eq i16 %ref.tmp421.sroa.0.0.extract.trunc, %249 br i1 %cmp.not.i.i1429, label %if.end.i.i1431, label %if.end458.critedge if.end.i.i1431: ; preds = %land.lhs.true420 %retval.sroa.2.0.arrayidx.sroa_idx.i.i1425 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i1423, i64 8 %retval.sroa.2.0.copyload.i.i1426 = load i64, ptr %retval.sroa.2.0.arrayidx.sroa_idx.i.i1425, align 8, !tbaa !24 %cmp8.i.i1432 = icmp ne i16 %ref.tmp421.sroa.0.0.extract.trunc, 0 %250 = extractelement <2 x i64> %246, i64 1 %cmp11.i.i1435 = icmp eq i64 %250, %retval.sroa.2.0.copyload.i.i1426 %or.cond1712 = select i1 %cmp8.i.i1432, i1 true, i1 %cmp11.i.i1435 br i1 %or.cond1712, label %land.rhs427, label %if.end458.critedge land.rhs427: ; preds = %if.end.i.i1431 store <2 x i64> %246, ptr %ref.tmp428, align 16 %cmp.i.not.i1448 = icmp eq i16 %ref.tmp421.sroa.0.0.extract.trunc, 0 br i1 %cmp.i.not.i1448, label %cond.false.i1468, label %cond.true.i1465 cond.true.i1465: ; preds = %land.rhs427 %251 = add i16 %ref.tmp421.sroa.0.0.extract.trunc, -138 %spec.select.i.i1450 = icmp ult i16 %251, 53 %252 = add i16 %ref.tmp421.sroa.0.0.extract.trunc, -138 %spec.select.i.i1466 = icmp ult i16 %252, 53 br label %_ZNK4llvm3EVT16isScalableVectorEv.exit1470 cond.false.i1468: ; preds = %land.rhs427 %call3.i1453 = call noundef i1 @_ZNK4llvm3EVT24isExtendedScalableVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp428) #7 store i64 %retval.sroa.0.0.copyload.i.i1424, ptr %ref.tmp433, align 8 %call434.fca.1.gep1738 = getelementptr inbounds nuw i8, ptr %ref.tmp433, i64 8 store i64 %retval.sroa.2.0.copyload.i.i1426, ptr %call434.fca.1.gep1738, align 8 %call3.i1469 = call noundef i1 @_ZNK4llvm3EVT24isExtendedScalableVectorEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp433) #7 br label %_ZNK4llvm3EVT16isScalableVectorEv.exit1470 _ZNK4llvm3EVT16isScalableVectorEv.exit1470: ; preds = %cond.false.i1468, %cond.true.i1465 %cond.i14511739 = phi i1 [ %spec.select.i.i1450, %cond.true.i1465 ], [ %call3.i1453, %cond.false.i1468 ] %cond.i1467 = phi i1 [ %spec.select.i.i1466, %cond.true.i1465 ], [ %call3.i1469, %cond.false.i1468 ] %253 = xor i1 %cond.i14511739, %cond.i1467 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp433) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp428) #6 br i1 %253, label %if.end458, label %if.then439 if.then439: ; preds = %_ZNK4llvm3EVT16isScalableVectorEv.exit1470 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp440) #6 store i64 %retval.sroa.0.0.copyload.i.i1424, ptr %ref.tmp440, align 8 %call441.fca.1.gep = getelementptr inbounds nuw i8, ptr %ref.tmp440, i64 8 store i64 %retval.sroa.2.0.copyload.i.i1426, ptr %call441.fca.1.gep, align 8 %call442 = call noundef i32 @_ZNK4llvm3EVT23getVectorMinNumElementsEv(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp440) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp440) #6 call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %Ops) #6 %254 = load ptr, ptr %OperandList.i.i1409, align 8, !tbaa !26 %NumOperands.i.i = getelementptr inbounds nuw i8, ptr %N0.sroa.0.0.copyload, i64 64 %255 = load i16, ptr %NumOperands.i.i, align 8, !tbaa !151 %idx.ext.i.i = zext i16 %255 to i64 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %254 to i64 %.fca.0.insert.i1481 = insertvalue [2 x i64] poison, i64 %sub.ptr.rhs.cast.i.i, 0 %.fca.1.insert.i1482 = insertvalue [2 x i64] %.fca.0.insert.i1481, i64 %idx.ext.i.i, 1 call void @_ZN4llvm11SmallVectorINS_7SDValueELj8EEC2INS_5SDUseEvEENS_8ArrayRefIT_EE(ptr noundef nonnull align 8 dereferenceable(144) %Ops, [2 x i64] %.fca.1.insert.i1482) %conv446 = zext i32 %call442 to i64 %div447 = udiv i64 %retval.0.i.i.i.i, %conv446 %256 = load ptr, ptr %Ops, align 8, !tbaa !152 %arrayidx.i1483 = getelementptr inbounds nuw %"class.llvm::SDValue", ptr %256, i64 %div447 store ptr %N1.sroa.0.0.copyload, ptr %arrayidx.i1483, align 8, !tbaa !27 %N1.sroa.39.0.arrayidx.i1483.sroa_idx = getelementptr inbounds nuw i8, ptr %arrayidx.i1483, i64 8 store i32 %N1.sroa.39.8.extract.trunc1582, ptr %N1.sroa.39.0.arrayidx.i1483.sroa_idx, align 8, !tbaa !153 %257 = load ptr, ptr %this, align 8, !tbaa !43 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp450) #6 %debugLoc.i.i1484 = getelementptr inbounds nuw i8, ptr %N, i64 72 %258 = load ptr, ptr %debugLoc.i.i1484, align 8, !tbaa !72 store ptr %258, ptr %ref.tmp450, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1485 = icmp eq ptr %258, null br i1 %tobool.not.i.i.i.i.i1485, label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1490, label %if.then.i.i.i.i.i1486 if.then.i.i.i.i.i1486: ; preds = %if.then439 %call.i.i.i.i.i.i1487 = call noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp450, ptr noundef nonnull align 4 dereferenceable(8) %258, i64 1) #6 %.pre1726 = load ptr, ptr %Ops, align 8, !tbaa !152 br label %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1490 _ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1490: ; preds = %if.then.i.i.i.i.i1486, %if.then439 %259 = phi ptr [ %256, %if.then439 ], [ %.pre1726, %if.then.i.i.i.i.i1486 ] %IROrder.i1488 = getelementptr inbounds nuw i8, ptr %ref.tmp450, i64 8 %IROrder.i.i1489 = getelementptr inbounds nuw i8, ptr %N, i64 68 %260 = load i32, ptr %IROrder.i.i1489, align 4, !tbaa !73 store i32 %260, ptr %IROrder.i1488, align 8, !tbaa !74 %agg.tmp451.sroa.0.0.copyload = load i64, ptr %VT, align 8 %agg.tmp451.sroa.2.0.copyload = load i64, ptr %call.fca.1.gep, align 8, !tbaa !24 %Size.i.i = getelementptr inbounds nuw i8, ptr %Ops, i64 8 %261 = load i32, ptr %Size.i.i, align 8, !tbaa !154 %conv.i.i1491 = zext i32 %261 to i64 %.fca.0.insert480 = insertvalue [2 x i64] poison, i64 %agg.tmp451.sroa.0.0.copyload, 0 %.fca.1.insert483 = insertvalue [2 x i64] %.fca.0.insert480, i64 %agg.tmp451.sroa.2.0.copyload, 1 %262 = ptrtoint ptr %259 to i64 %.fca.0.insert474 = insertvalue [2 x i64] poison, i64 %262, 0 %.fca.1.insert477 = insertvalue [2 x i64] %.fca.0.insert474, i64 %conv.i.i1491, 1 %call453 = call [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_8ArrayRefINS_7SDValueEEE(ptr noundef nonnull align 8 dereferenceable(880) %257, i32 noundef 160, ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp450, [2 x i64] %.fca.1.insert483, [2 x i64] %.fca.1.insert477) #6 %call453.fca.0.extract = extractvalue [2 x i64] %call453, 0 %call453.fca.1.extract = extractvalue [2 x i64] %call453, 1 %263 = inttoptr i64 %call453.fca.0.extract to ptr %retval.sroa.17.8.insert.ext = and i64 %call453.fca.1.extract, 4294967295 %264 = load ptr, ptr %ref.tmp450, align 8, !tbaa !72 %tobool.not.i.i.i.i.i1492 = icmp eq ptr %264, null br i1 %tobool.not.i.i.i.i.i1492, label %_ZN4llvm5SDLocD2Ev.exit1494, label %if.then.i.i.i.i.i1493 if.then.i.i.i.i.i1493: ; preds = %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1490 call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %ref.tmp450, ptr noundef nonnull align 4 dereferenceable(8) %264) #6 br label %_ZN4llvm5SDLocD2Ev.exit1494 _ZN4llvm5SDLocD2Ev.exit1494: ; preds = %if.then.i.i.i.i.i1493, %_ZN4llvm5SDLocC2EPKNS_6SDNodeE.exit1490 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp450) #6 %265 = load ptr, ptr %Ops, align 8, !tbaa !152 %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %Ops, i64 16 %cmp.i.i.i = icmp eq ptr %265, %add.ptr.i.i.i.i br i1 %cmp.i.i.i, label %_ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit, label %if.then.i.i1495 if.then.i.i1495: ; preds = %_ZN4llvm5SDLocD2Ev.exit1494 call void @free(ptr noundef %265) br label %_ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit _ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit: ; preds = %if.then.i.i1495, %_ZN4llvm5SDLocD2Ev.exit1494 call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %Ops) #6 br label %cleanup463 if.end458.critedge.sink.split: ; preds = %land.lhs.true373, %land.lhs.true129 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp428) #6 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp433) #6 br label %if.end458.critedge if.end458.critedge: ; preds = %if.end458.critedge.sink.split, %if.end.i.i1431, %land.lhs.true420, %_ZNK4llvm7SDValue9hasOneUseEv.exit1408, %for.body.i.i1394, %land.lhs.true418, %if.end415 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp433) #6 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp428) #6 br label %if.end458 if.end458: ; preds = %if.end458.critedge, %_ZNK4llvm3EVT16isScalableVectorEv.exit1470 %266 = ptrtoint ptr %N to i64 %.fca.0.insert = insertvalue [2 x i64] poison, i64 %266, 0 %.fca.1.insert = insertvalue [2 x i64] %.fca.0.insert, i64 0, 1 %call460 = call fastcc noundef i1 @_ZN12_GLOBAL__N_111DAGCombiner26SimplifyDemandedVectorEltsEN4llvm7SDValueE(ptr noundef nonnull align 8 dereferenceable(956) %this, [2 x i64] %.fca.1.insert) %spec.select = select i1 %call460, ptr %N, ptr null br label %cleanup463 cleanup463.critedge: ; preds = %_ZN4llvm5SDLocD2Ev.exit935, %_ZN4llvm5SDLocD2Ev.exit, %if.then16 %retval.sroa.17.1 = phi i64 [ %retval.sroa.17.0.copyload, %if.then16 ], [ %retval.sroa.17.8.insert.ext1654, %_ZN4llvm5SDLocD2Ev.exit935 ], [ %retval.sroa.17.8.insert.ext1658, %_ZN4llvm5SDLocD2Ev.exit ] %retval.sroa.0.1 = phi ptr [ %retval.sroa.0.0.copyload, %if.then16 ], [ %42, %_ZN4llvm5SDLocD2Ev.exit935 ], [ %32, %_ZN4llvm5SDLocD2Ev.exit ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %SrcVT) #6 br label %cleanup463 cleanup463: ; preds = %cleanup463.critedge, %if.end458, %_ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit, %_ZN4llvm5SDLocD2Ev.exit1388, %_ZN4llvm5SDLocD2Ev.exit1310, %_ZN4llvm5SDLocD2Ev.exit1194, %_ZN4llvm5SDLocD2Ev.exit1173, %_ZN4llvm5SDLocD2Ev.exit1126, %if.then118, %_ZN4llvm5SDLocD2Ev.exit967, %land.lhs.true59, %entry %retval.sroa.17.0 = phi i64 [ %retval.sroa.17.1, %cleanup463.critedge ], [ %retval.sroa.17.8.insert.ext1650, %_ZN4llvm5SDLocD2Ev.exit967 ], [ %retval.sroa.17.8.insert.ext1646, %if.then118 ], [ %retval.sroa.17.8.insert.ext1642, %_ZN4llvm5SDLocD2Ev.exit1126 ], [ %retval.sroa.17.8.insert.ext1638, %_ZN4llvm5SDLocD2Ev.exit1173 ], [ %retval.sroa.17.8.insert.ext1634, %_ZN4llvm5SDLocD2Ev.exit1194 ], [ %retval.sroa.17.8.insert.ext1630, %_ZN4llvm5SDLocD2Ev.exit1310 ], [ %retval.sroa.17.8.insert.ext1626, %_ZN4llvm5SDLocD2Ev.exit1388 ], [ %retval.sroa.17.8.insert.ext, %_ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit ], [ %N0.sroa.35.0.copyload, %entry ], [ %N0.sroa.35.0.copyload, %land.lhs.true59 ], [ 0, %if.end458 ] %retval.sroa.0.0 = phi ptr [ %retval.sroa.0.1, %cleanup463.critedge ], [ %62, %_ZN4llvm5SDLocD2Ev.exit967 ], [ %99, %if.then118 ], [ %131, %_ZN4llvm5SDLocD2Ev.exit1126 ], [ %148, %_ZN4llvm5SDLocD2Ev.exit1173 ], [ %162, %_ZN4llvm5SDLocD2Ev.exit1194 ], [ %210, %_ZN4llvm5SDLocD2Ev.exit1310 ], [ %238, %_ZN4llvm5SDLocD2Ev.exit1388 ], [ %263, %_ZN4llvm11SmallVectorINS_7SDValueELj8EED2Ev.exit ], [ %N0.sroa.0.0.copyload, %entry ], [ %N0.sroa.0.0.copyload, %land.lhs.true59 ], [ %spec.select, %if.end458 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %VT) #6 %267 = ptrtoint ptr %retval.sroa.0.0 to i64 %.fca.0.insert877 = insertvalue [2 x i64] poison, i64 %267, 0 %.fca.1.insert880 = insertvalue [2 x i64] %.fca.0.insert877, i64 %retval.sroa.17.0, 1 ret [2 x i64] %.fca.1.insert880 } declare dso_local noundef i1 @_ZN4llvm16MetadataTracking5trackEPvRNS_8MetadataENS_12PointerUnionIJPNS_15MetadataAsValueEPS2_PNS_14DebugValueUserEEEE(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i64) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind uwtable declare dso_local void @_ZN4llvm11SmallVectorINS_7SDValueELj8EEC2INS_5SDUseEvEENS_8ArrayRefIT_EE(ptr noundef nonnull align 8 dereferenceable(144), [2 x i64]) unnamed_addr #1 declare dso_local noundef i1 @_ZNK4llvm12SelectionDAG37isConstantIntBuildVectorOrConstantIntENS_7SDValueEb(ptr noundef nonnull align 8 dereferenceable(880), [2 x i64], i1 noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind uwtable declare dso_local noundef i64 @_ZNK4llvm3EVT19getScalarSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable declare hidden fastcc noundef i1 @_ZN12_GLOBAL__N_111DAGCombiner12hasOperationEjN4llvm3EVTE(ptr readonly captures(none), i8, i32 noundef, [2 x i64]) unnamed_addr #5 ; Function Attrs: mustprogress nounwind uwtable declare dso_local [2 x i64] @_ZNK4llvm3EVT13getSizeInBitsEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 declare dso_local [2 x i64] @_ZNK4llvm3EVT28getExtendedVectorElementTypeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) declare dso_local noundef i1 @_ZNK4llvm3EVT16isExtendedVectorEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_S5_(ptr noundef nonnull align 8 dereferenceable(880), i32 noundef, ptr noundef nonnull align 8 dereferenceable(12), [2 x i64], [2 x i64], [2 x i64], [2 x i64]) local_unnamed_addr #2 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG20getVectorIdxConstantEyRKNS_5SDLocEb(ptr noundef nonnull align 8 dereferenceable(880), i64 noundef, ptr noundef nonnull align 8 dereferenceable(12), i1 noundef) local_unnamed_addr #2 declare dso_local noundef i1 @_ZNK4llvm12SelectionDAG35isConstantFPBuildVectorOrConstantFPENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880), [2 x i64]) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) declare dso_local noundef i1 @_ZNK4llvm3EVT27isExtendedFixedLengthVectorEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind uwtable declare dso_local [2 x i64] @_ZN4llvm3EVT11getVectorVTERNS_11LLVMContextES0_NS_12ElementCountE(ptr noundef nonnull align 8 dereferenceable(8), [2 x i64], i64) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable declare dso_local i64 @_ZNK4llvm3EVT21getVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) declare dso_local i64 @_ZNK4llvm3EVT29getExtendedVectorElementCountEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 declare dso_local [2 x i64] @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(880), [2 x i64], [2 x i64]) local_unnamed_addr #2 declare dso_local noundef i64 @_ZNK4llvm8TypeSizecvyEv(ptr noundef nonnull align 8 dereferenceable(9)) local_unnamed_addr #2 declare dso_local [2 x i64] @_ZN4llvm19peekThroughBitcastsENS_7SDValueE([2 x i64]) local_unnamed_addr #2 ; Function Attrs: mustprogress nounwind uwtable declare dso_local noundef i1 @_ZNK4llvm3EVT11knownBitsGEES0_(ptr noundef nonnull align 8 dereferenceable(16), [2 x i64]) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable declare dso_local noundef i1 @_ZNK4llvm3EVT11knownBitsLEES0_(ptr noundef nonnull align 8 dereferenceable(16), [2 x i64]) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable declare hidden fastcc noundef i1 @_ZN12_GLOBAL__N_111DAGCombiner26SimplifyDemandedVectorEltsEN4llvm7SDValueE(ptr noundef nonnull align 8 dereferenceable(956), [2 x i64]) unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable declare dso_local noundef i32 @_ZNK4llvm3EVT23getVectorMinNumElementsEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #1 = { mustprogress nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } attributes #4 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+fp-armv8,+neon,+v8a,-fmv" } attributes #6 = { nounwind } attributes #7 = { nounwind willreturn memory(read) } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} !0 = !{i32 1, !"wchar_size", i32 2} !1 = !{i32 8, !"PIC Level", i32 2} !2 = !{i32 7, !"uwtable", i32 2} !3 = !{!"clang version 21.0.0git (https://github.com/llvm/llvm-project.git af960a552e0e85fb0bf43b0899c1b1b6ecd59e5a)"} !4 = !{!5, !19, i64 48} !5 = !{!"_ZTSN4llvm6SDNodeE", !6, i64 0, !10, i64 8, !15, i64 24, !16, i64 28, !8, i64 32, !17, i64 34, !15, i64 36, !18, i64 40, !19, i64 48, !18, i64 56, !17, i64 64, !17, i64 66, !15, i64 68, !20, i64 72, !15, i64 80, !15, i64 84} !6 = !{!"_ZTSN4llvm14FoldingSetBase4NodeE", !7, i64 0} !7 = !{!"any pointer", !8, i64 0} !8 = !{!"omnipotent char", !9, i64 0} !9 = !{!"Simple C++ TBAA"} !10 = !{!"_ZTSN4llvm10ilist_nodeINS_6SDNodeEJEEE", !11, i64 0} !11 = !{!"_ZTSN4llvm15ilist_node_implINS_12ilist_detail12node_optionsINS_6SDNodeELb0ELb0EvLb0EvEEEE", !12, i64 0} !12 = !{!"_ZTSN4llvm15ilist_node_baseILb0EvEE", !13, i64 0} !13 = !{!"_ZTSN4llvm12ilist_detail18node_base_prevnextINS_15ilist_node_baseILb0EvEELb0EEE", !14, i64 0, !14, i64 8} !14 = !{!"p1 _ZTSN4llvm15ilist_node_baseILb0EvEE", !7, i64 0} !15 = !{!"int", !8, i64 0} !16 = !{!"_ZTSN4llvm11SDNodeFlagsE", !15, i64 0} !17 = !{!"short", !8, i64 0} !18 = !{!"p1 _ZTSN4llvm5SDUseE", !7, i64 0} !19 = !{!"p1 _ZTSN4llvm3EVTE", !7, i64 0} !20 = !{!"_ZTSN4llvm8DebugLocE", !21, i64 0} !21 = !{!"_ZTSN4llvm18TypedTrackingMDRefINS_6MDNodeEEE", !22, i64 0} !22 = !{!"_ZTSN4llvm13TrackingMDRefE", !23, i64 0} !23 = !{!"p1 _ZTSN4llvm8MetadataE", !7, i64 0} !24 = !{!25, !25, i64 0} !25 = !{!"p1 _ZTSN4llvm4TypeE", !7, i64 0} !26 = !{!5, !18, i64 40} !27 = !{!28, !28, i64 0} !28 = !{!"p1 _ZTSN4llvm6SDNodeE", !7, i64 0} !29 = !{!30, !31, i64 88} !30 = !{!"_ZTSN4llvm14ConstantSDNodeE", !5, i64 0, !31, i64 88} !31 = !{!"p1 _ZTSN4llvm11ConstantIntE", !7, i64 0} !32 = !{!33, !15, i64 8} !33 = !{!"_ZTSN4llvm5APIntE", !8, i64 0, !15, i64 8} !34 = !{!8, !8, i64 0} !35 = !{!5, !15, i64 24} !36 = !{!37, !28, i64 0} !37 = !{!"_ZTSN4llvm7SDValueE", !28, i64 0, !15, i64 8} !38 = !{!37, !15, i64 8} !39 = !{!40, !42, i64 0} !40 = !{!"_ZTSN4llvm3EVTE", !41, i64 0, !25, i64 8} !41 = !{!"_ZTSN4llvm3MVTE", !42, i64 0} !42 = !{!"_ZTSN4llvm3MVT15SimpleValueTypeE", !8, i64 0} !43 = !{!44, !45, i64 0} !44 = !{!"_ZTSN12_GLOBAL__N_111DAGCombinerE", !45, i64 0, !46, i64 8, !47, i64 16, !48, i64 24, !49, i64 28, !50, i64 32, !50, i64 33, !50, i64 34, !50, i64 35, !50, i64 36, !51, i64 40, !57, i64 568, !65, i64 864, !67, i64 888, !68, i64 896, !15, i64 952} !45 = !{!"p1 _ZTSN4llvm12SelectionDAGE", !7, i64 0} !46 = !{!"p1 _ZTSN4llvm14TargetLoweringE", !7, i64 0} !47 = !{!"p1 _ZTSN4llvm22SelectionDAGTargetInfoE", !7, i64 0} !48 = !{!"_ZTSN4llvm12CombineLevelE", !8, i64 0} !49 = !{!"_ZTSN4llvm15CodeGenOptLevelE", !8, i64 0} !50 = !{!"bool", !8, i64 0} !51 = !{!"_ZTSN4llvm11SmallVectorIPNS_6SDNodeELj64EEE", !52, i64 0, !56, i64 16} !52 = !{!"_ZTSN4llvm15SmallVectorImplIPNS_6SDNodeEEE", !53, i64 0} !53 = !{!"_ZTSN4llvm23SmallVectorTemplateBaseIPNS_6SDNodeELb1EEE", !54, i64 0} !54 = !{!"_ZTSN4llvm25SmallVectorTemplateCommonIPNS_6SDNodeEvEE", !55, i64 0} !55 = !{!"_ZTSN4llvm15SmallVectorBaseIjEE", !7, i64 0, !15, i64 8, !15, i64 12} !56 = !{!"_ZTSN4llvm18SmallVectorStorageIPNS_6SDNodeELj64EEE", !8, i64 0} !57 = !{!"_ZTSN4llvm14SmallSetVectorIPNS_6SDNodeELj32EEE", !58, i64 0} !58 = !{!"_ZTSN4llvm9SetVectorIPNS_6SDNodeENS_11SmallVectorIS2_Lj32EEENS_8DenseSetIS2_NS_12DenseMapInfoIS2_vEEEELj32EEE", !59, i64 0, !63, i64 24} !59 = !{!"_ZTSN4llvm8DenseSetIPNS_6SDNodeENS_12DenseMapInfoIS2_vEEEE", !60, i64 0} !60 = !{!"_ZTSN4llvm6detail12DenseSetImplIPNS_6SDNodeENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_12DenseMapInfoIS3_vEENS0_12DenseSetPairIS3_EEEES7_EE", !61, i64 0} !61 = !{!"_ZTSN4llvm8DenseMapIPNS_6SDNodeENS_6detail13DenseSetEmptyENS_12DenseMapInfoIS2_vEENS3_12DenseSetPairIS2_EEEE", !62, i64 0, !15, i64 8, !15, i64 12, !15, i64 16} !62 = !{!"p1 _ZTSN4llvm6detail12DenseSetPairIPNS_6SDNodeEEE", !7, i64 0} !63 = !{!"_ZTSN4llvm11SmallVectorIPNS_6SDNodeELj32EEE", !52, i64 0, !64, i64 16} !64 = !{!"_ZTSN4llvm18SmallVectorStorageIPNS_6SDNodeELj32EEE", !8, i64 0} !65 = !{!"_ZTSN4llvm8DenseMapIPNS_6SDNodeENSt3__14pairIS2_jEENS_12DenseMapInfoIS2_vEENS_6detail12DenseMapPairIS2_S5_EEEE", !66, i64 0, !15, i64 8, !15, i64 12, !15, i64 16} !66 = !{!"p1 _ZTSN4llvm6detail12DenseMapPairIPNS_6SDNodeENSt3__14pairIS3_jEEEE", !7, i64 0} !67 = !{!"p1 _ZTSN4llvm14BatchAAResultsE", !7, i64 0} !68 = !{!"_ZTSN4llvm11SmallPtrSetIPNS_6SDNodeELj4EEE", !69, i64 0, !8, i64 24} !69 = !{!"_ZTSN4llvm15SmallPtrSetImplIPNS_6SDNodeEEE", !70, i64 0} !70 = !{!"_ZTSN4llvm19SmallPtrSetImplBaseE", !71, i64 0, !15, i64 8, !15, i64 12, !15, i64 16, !50, i64 20} !71 = !{!"any p2 pointer", !7, i64 0} !72 = !{!22, !23, i64 0} !73 = !{!5, !15, i64 68} !74 = !{!75, !15, i64 8} !75 = !{!"_ZTSN4llvm5SDLocE", !20, i64 0, !15, i64 8} !76 = !{!18, !18, i64 0} !77 = !{!17, !17, i64 0} !78 = !{!42, !42, i64 0} !79 = !{!80, !87, i64 64} !80 = !{!"_ZTSN4llvm12SelectionDAGE", !81, i64 0, !47, i64 8, !46, i64 16, !82, i64 24, !83, i64 32, !84, i64 40, !85, i64 48, !86, i64 56, !87, i64 64, !49, i64 72, !88, i64 80, !89, i64 88, !90, i64 96, !91, i64 104, !92, i64 112, !93, i64 120, !94, i64 128, !100, i64 152, !103, i64 168, !5, i64 264, !37, i64 352, !114, i64 368, !118, i64 384, !121, i64 488, !103, i64 504, !123, i64 600, !129, i64 680, !130, i64 688, !17, i64 712, !50, i64 714, !132, i64 720, !133, i64 728, !135, i64 752, !137, i64 776, !139, i64 800, !142, i64 824, !144, i64 848, !146, i64 872} !81 = !{!"p1 _ZTSN4llvm13TargetMachineE", !7, i64 0} !82 = !{!"p1 _ZTSN4llvm17TargetLibraryInfoE", !7, i64 0} !83 = !{!"p1 _ZTSN4llvm15FunctionVarLocsE", !7, i64 0} !84 = !{!"p1 _ZTSN4llvm15MachineFunctionE", !7, i64 0} !85 = !{!"p1 _ZTSN4llvm15AnalysisManagerINS_15MachineFunctionEJEEE", !7, i64 0} !86 = !{!"p1 _ZTSN4llvm4PassE", !7, i64 0} !87 = !{!"p1 _ZTSN4llvm11LLVMContextE", !7, i64 0} !88 = !{!"p1 _ZTSN4llvm21GenericUniformityInfoINS_17GenericSSAContextINS_8FunctionEEEEE", !7, i64 0} !89 = !{!"p1 _ZTSN4llvm20FunctionLoweringInfoE", !7, i64 0} !90 = !{!"p1 _ZTSN4llvm25OptimizationRemarkEmitterE", !7, i64 0} !91 = !{!"p1 _ZTSN4llvm18ProfileSummaryInfoE", !7, i64 0} !92 = !{!"p1 _ZTSN4llvm18BlockFrequencyInfoE", !7, i64 0} !93 = !{!"p1 _ZTSN4llvm17MachineModuleInfoE", !7, i64 0} !94 = !{!"_ZTSNSt3__13setIN4llvm3EVTENS2_14compareRawBitsENS_9allocatorIS2_EEEE", !95, i64 0} !95 = !{!"_ZTSNSt3__16__treeIN4llvm3EVTENS2_14compareRawBitsENS_9allocatorIS2_EEEE", !96, i64 0, !97, i64 8, !99, i64 16} !96 = !{!"p1 _ZTSNSt3__115__tree_end_nodeIPNS_16__tree_node_baseIPvEEEE", !7, i64 0} !97 = !{!"_ZTSNSt3__115__tree_end_nodeIPNS_16__tree_node_baseIPvEEEE", !98, i64 0} !98 = !{!"p1 _ZTSNSt3__116__tree_node_baseIPvEE", !7, i64 0} !99 = !{!"long long", !8, i64 0} !100 = !{!"_ZTSN4llvm10FoldingSetINS_12SDVTListNodeEEE", !101, i64 0} !101 = !{!"_ZTSN4llvm14FoldingSetImplINS_10FoldingSetINS_12SDVTListNodeEEES2_EE", !102, i64 0} !102 = !{!"_ZTSN4llvm14FoldingSetBaseE", !71, i64 0, !15, i64 8, !15, i64 12} !103 = !{!"_ZTSN4llvm20BumpPtrAllocatorImplINS_15MallocAllocatorELy4096ELy4096ELy128EEE", !104, i64 0, !104, i64 8, !105, i64 16, !110, i64 64, !99, i64 80, !99, i64 88} !104 = !{!"p1 omnipotent char", !7, i64 0} !105 = !{!"_ZTSN4llvm11SmallVectorIPvLj4EEE", !106, i64 0, !109, i64 16} !106 = !{!"_ZTSN4llvm15SmallVectorImplIPvEE", !107, i64 0} !107 = !{!"_ZTSN4llvm23SmallVectorTemplateBaseIPvLb1EEE", !108, i64 0} !108 = !{!"_ZTSN4llvm25SmallVectorTemplateCommonIPvvEE", !55, i64 0} !109 = !{!"_ZTSN4llvm18SmallVectorStorageIPvLj4EEE", !8, i64 0} !110 = !{!"_ZTSN4llvm11SmallVectorINSt3__14pairIPvyEELj0EEE", !111, i64 0} !111 = !{!"_ZTSN4llvm15SmallVectorImplINSt3__14pairIPvyEEEE", !112, i64 0} !112 = !{!"_ZTSN4llvm23SmallVectorTemplateBaseINSt3__14pairIPvyEELb1EEE", !113, i64 0} !113 = !{!"_ZTSN4llvm25SmallVectorTemplateCommonINSt3__14pairIPvyEEvEE", !55, i64 0} !114 = !{!"_ZTSN4llvm6iplistINS_6SDNodeEJEEE", !115, i64 0} !115 = !{!"_ZTSN4llvm11iplist_implINS_12simple_ilistINS_6SDNodeEJEEENS_12ilist_traitsIS2_EEEE", !116, i64 0} !116 = !{!"_ZTSN4llvm12simple_ilistINS_6SDNodeEJEEE", !117, i64 0} !117 = !{!"_ZTSN4llvm14ilist_sentinelINS_12ilist_detail12node_optionsINS_6SDNodeELb0ELb0EvLb0EvEEEE", !11, i64 0} !118 = !{!"_ZTSN4llvm18RecyclingAllocatorINS_20BumpPtrAllocatorImplINS_15MallocAllocatorELy4096ELy4096ELy128EEENS_6SDNodeELy112ELy8EEE", !119, i64 0, !103, i64 8} !119 = !{!"_ZTSN4llvm8RecyclerINS_6SDNodeELy112ELy8EEE", !120, i64 0} !120 = !{!"p1 _ZTSN4llvm8RecyclerINS_6SDNodeELy112ELy8EE8FreeNodeE", !7, i64 0} !121 = !{!"_ZTSN4llvm10FoldingSetINS_6SDNodeEEE", !122, i64 0} !122 = !{!"_ZTSN4llvm14FoldingSetImplINS_10FoldingSetINS_6SDNodeEEES2_EE", !102, i64 0} !123 = !{!"_ZTSN4llvm13ArrayRecyclerINS_5SDUseELy8EEE", !124, i64 0} !124 = !{!"_ZTSN4llvm11SmallVectorIPNS_13ArrayRecyclerINS_5SDUseELy8EE8FreeListELj8EEE", !125, i64 0, !128, i64 16} !125 = !{!"_ZTSN4llvm15SmallVectorImplIPNS_13ArrayRecyclerINS_5SDUseELy8EE8FreeListEEE", !126, i64 0} !126 = !{!"_ZTSN4llvm23SmallVectorTemplateBaseIPNS_13ArrayRecyclerINS_5SDUseELy8EE8FreeListELb1EEE", !127, i64 0} !127 = !{!"_ZTSN4llvm25SmallVectorTemplateCommonIPNS_13ArrayRecyclerINS_5SDUseELy8EE8FreeListEvEE", !55, i64 0} !128 = !{!"_ZTSN4llvm18SmallVectorStorageIPNS_13ArrayRecyclerINS_5SDUseELy8EE8FreeListELj8EEE", !8, i64 0} !129 = !{!"p1 _ZTSN4llvm9SDDbgInfoE", !7, i64 0} !130 = !{!"_ZTSN4llvm8DenseMapIPKNS_6SDNodeENS_12SelectionDAG13NodeExtraInfoENS_12DenseMapInfoIS3_vEENS_6detail12DenseMapPairIS3_S5_EEEE", !131, i64 0, !15, i64 8, !15, i64 12, !15, i64 16} !131 = !{!"p1 _ZTSN4llvm6detail12DenseMapPairIPKNS_6SDNodeENS_12SelectionDAG13NodeExtraInfoEEE", !7, i64 0} !132 = !{!"p1 _ZTSN4llvm12SelectionDAG17DAGUpdateListenerE", !7, i64 0} !133 = !{!"_ZTSNSt3__16vectorIPN4llvm14CondCodeSDNodeENS_9allocatorIS3_EEEE", !134, i64 0, !134, i64 8, !134, i64 16} !134 = !{!"p2 _ZTSN4llvm14CondCodeSDNodeE", !71, i64 0} !135 = !{!"_ZTSNSt3__16vectorIPN4llvm6SDNodeENS_9allocatorIS3_EEEE", !136, i64 0, !136, i64 8, !136, i64 16} !136 = !{!"p2 _ZTSN4llvm6SDNodeE", !71, i64 0} !137 = !{!"_ZTSNSt3__13mapIN4llvm3EVTEPNS1_6SDNodeENS2_14compareRawBitsENS_9allocatorINS_4pairIKS2_S4_EEEEEE", !138, i64 0} !138 = !{!"_ZTSNSt3__16__treeINS_12__value_typeIN4llvm3EVTEPNS2_6SDNodeEEENS_19__map_value_compareIS3_S6_NS3_14compareRawBitsELb1EEENS_9allocatorIS6_EEEE", !96, i64 0, !97, i64 8, !99, i64 16} !139 = !{!"_ZTSN4llvm9StringMapIPNS_6SDNodeENS_15MallocAllocatorEEE", !140, i64 0} !140 = !{!"_ZTSN4llvm13StringMapImplE", !141, i64 0, !15, i64 8, !15, i64 12, !15, i64 16, !15, i64 20} !141 = !{!"p2 _ZTSN4llvm18StringMapEntryBaseE", !71, i64 0} !142 = !{!"_ZTSNSt3__13mapINS_4pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEjEEPN4llvm6SDNodeENS_4lessIS8_EENS5_INS1_IKS8_SB_EEEEEE", !143, i64 0} !143 = !{!"_ZTSNSt3__16__treeINS_12__value_typeINS_4pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEjEEPN4llvm6SDNodeEEENS_19__map_value_compareIS9_SD_NS_4lessIS9_EELb1EEENS6_ISD_EEEE", !96, i64 0, !97, i64 8, !99, i64 16} !144 = !{!"_ZTSN4llvm8DenseMapIPNS_8MCSymbolEPNS_6SDNodeENS_12DenseMapInfoIS2_vEENS_6detail12DenseMapPairIS2_S4_EEEE", !145, i64 0, !15, i64 8, !15, i64 12, !15, i64 16} !145 = !{!"p1 _ZTSN4llvm6detail12DenseMapPairIPNS_8MCSymbolEPNS_6SDNodeEEE", !7, i64 0} !146 = !{!"p1 _ZTSN4llvm12SelectionDAG12FlagInserterE", !7, i64 0} !147 = !{!44, !46, i64 8} !148 = !{!44, !50, i64 33} !149 = !{i8 0, i8 2} !150 = !{} !151 = !{!5, !17, i64 64} !152 = !{!55, !7, i64 0} !153 = !{!15, !15, i64 0} !154 = !{!55, !15, i64 8}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree