-
-
Save nikic/9abff537ba4641543951c8d06aa35a3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'reduced.ll' | |
source_filename = "reduced.ll" | |
target triple = "x86_64-unknown-linux-gnu" | |
%class.Isa = type <{ i32, i32, i32, i8, i8, [2 x i8] }> | |
%"struct.std::pair" = type { %class.Isa*, %class.Isa* } | |
%class.anon = type { i32*, i32*, i32*, i8*, i8* } | |
%"struct.__gnu_cxx::__ops::_Iter_pred" = type { %class.anon } | |
$_ZSt9make_pairIPK3IsaS2_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_ = comdat any | |
$_ZSt5beginIK3IsaLm75EEPT_RAT0__S2_ = comdat any | |
$_ZSt3endIK3IsaLm75EEPT_RAT0__S2_ = comdat any | |
$_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE = comdat any | |
$_ZNSt4pairIPK3IsaS2_EC2IS2_S2_Lb1EEEOT_OT0_ = comdat any | |
@_ZZN3Isa13supportedIsasEvE14supportedIsas_ = internal constant [75 x { i32, i32, i32, i8, i8 }] [{ i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 0, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 1, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 2, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 3, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 4, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 7, i32 0, i32 5, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 1, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 1, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 1, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 2, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 3, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 8, i32 0, i32 5, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 8, i32 1, i32 0, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 8, i32 1, i32 0, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 8, i32 1, i32 0, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 0, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 0, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 0, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 4, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 4, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 4, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 1, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 2, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 3, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 1, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 1, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 2, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 2, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 3, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 6, i8 3, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 1, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 2, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 3, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 1, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 1, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 2, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 2, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 3, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 8, i8 3, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 2, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 1, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 2, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 3, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 1, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 1, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 2, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 2, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 3, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 10, i8 3, i8 3 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 12, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 12, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 9, i32 0, i32 12, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 0, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 0, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 0, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 1, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 1, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 1, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 2, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 2, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 2, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 3, i8 0, i8 1 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 3, i8 0, i8 2 }, { i32, i32, i32, i8, i8 } { i32 10, i32 1, i32 3, i8 0, i8 3 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 0, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 1, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 2, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 3, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 4, i8 0, i8 0 }, { i32, i32, i32, i8, i8 } { i32 10, i32 3, i32 5, i8 0, i8 0 }] | |
; Function Attrs: sanitize_address | |
define { %class.Isa*, %class.Isa* } @_ZN3Isa13supportedIsasEv() local_unnamed_addr #0 { | |
entry: | |
%ref.tmp11 = alloca [0 x %class.Isa*], align 8 | |
%ref.tmp = alloca %class.Isa*, align 8 | |
%ref.tmp11.sub = getelementptr inbounds [0 x %class.Isa*], [0 x %class.Isa*]* %ref.tmp11, i64 0, i64 0 | |
%call = call %class.Isa* @_ZSt5beginIK3IsaLm75EEPT_RAT0__S2_([75 x %class.Isa]* bitcast ([75 x { i32, i32, i32, i8, i8 }]* @_ZZN3Isa13supportedIsasEvE14supportedIsas_ to [75 x %class.Isa]*)) | |
store %class.Isa* %call, %class.Isa** %ref.tmp, align 8 | |
%call2 = call %class.Isa* @_ZSt3endIK3IsaLm75EEPT_RAT0__S2_([75 x %class.Isa]* bitcast ([75 x { i32, i32, i32, i8, i8 }]* @_ZZN3Isa13supportedIsasEvE14supportedIsas_ to [75 x %class.Isa]*)) | |
store %class.Isa* %call2, %class.Isa** %ref.tmp11.sub, align 8 | |
%call3 = call { %class.Isa*, %class.Isa* } @_ZSt9make_pairIPK3IsaS2_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(%class.Isa** nonnull %ref.tmp, %class.Isa** nonnull %ref.tmp11.sub) | |
ret { %class.Isa*, %class.Isa* } %call3 | |
} | |
; Function Attrs: sanitize_address | |
define linkonce_odr { %class.Isa*, %class.Isa* } @_ZSt9make_pairIPK3IsaS2_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(%class.Isa** %__x, %class.Isa** %__y) local_unnamed_addr #0 comdat { | |
entry: | |
%retval1 = alloca [0 x %"struct.std::pair"], align 8 | |
%retval1.sub = getelementptr inbounds [0 x %"struct.std::pair"], [0 x %"struct.std::pair"]* %retval1, i64 0, i64 0 | |
%call = call %class.Isa** @_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE(%class.Isa** %__x) | |
%call1 = call %class.Isa** @_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE(%class.Isa** %__x) | |
call void @_ZNSt4pairIPK3IsaS2_EC2IS2_S2_Lb1EEEOT_OT0_(%"struct.std::pair"* nonnull %retval1.sub, %class.Isa** %__x, %class.Isa** %__y) | |
%.elt = getelementptr inbounds [0 x %"struct.std::pair"], [0 x %"struct.std::pair"]* %retval1, i64 0, i64 0, i32 0 | |
%.unpack = load %class.Isa*, %class.Isa** %.elt, align 8 | |
%0 = insertvalue { %class.Isa*, %class.Isa* } undef, %class.Isa* %.unpack, 0 | |
%1 = getelementptr inbounds [0 x %"struct.std::pair"], [0 x %"struct.std::pair"]* %retval1, i64 0, i64 0, i32 1 | |
%.unpack3 = load %class.Isa*, %class.Isa** %1, align 8 | |
%2 = insertvalue { %class.Isa*, %class.Isa* } %0, %class.Isa* %.unpack3, 1 | |
ret { %class.Isa*, %class.Isa* } %2 | |
} | |
; Function Attrs: sanitize_address | |
define linkonce_odr %class.Isa* @_ZSt5beginIK3IsaLm75EEPT_RAT0__S2_([75 x %class.Isa]* %__arr) local_unnamed_addr #0 comdat { | |
entry: | |
%arraydecay = getelementptr inbounds [75 x %class.Isa], [75 x %class.Isa]* %__arr, i64 0, i64 0 | |
ret %class.Isa* %arraydecay | |
} | |
; Function Attrs: sanitize_address | |
define linkonce_odr %class.Isa* @_ZSt3endIK3IsaLm75EEPT_RAT0__S2_([75 x %class.Isa]* %__arr) local_unnamed_addr #0 comdat { | |
entry: | |
%add.ptr = getelementptr inbounds [75 x %class.Isa], [75 x %class.Isa]* %__arr, i64 0, i64 75 | |
ret %class.Isa* %add.ptr | |
} | |
; Function Attrs: sanitize_address | |
define %class.Isa* @_ZN3Isa7findIsaEjjjNS_7FeatureES0_(i32 %versionMajor, i32 %versionStepping, i32* %versionMajor.addr, %class.anon* %agg.tmp, i32** %0, %class.Isa** %isaIter, %class.Isa* %1) local_unnamed_addr #0 { | |
entry: | |
%agg.tmp32 = alloca [0 x %class.anon], align 8 | |
%versionStepping.addr = alloca i32, align 4 | |
%agg.tmp32.sub = getelementptr inbounds [0 x %class.anon], [0 x %class.anon]* %agg.tmp32, i64 0, i64 0 | |
store i32 %versionMajor, i32* %versionMajor.addr, align 4 | |
store i32 %versionMajor, i32* %versionStepping.addr, align 4 | |
%call = call { %class.Isa*, %class.Isa* } @_ZN3Isa13supportedIsasEv() | |
%2 = extractvalue { %class.Isa*, %class.Isa* } %call, 0 | |
%3 = extractvalue { %class.Isa*, %class.Isa* } %call, 1 | |
%4 = getelementptr inbounds [0 x %class.anon], [0 x %class.anon]* %agg.tmp32, i64 0, i64 0, i32 0 | |
store i32* %versionMajor.addr, i32** %4, align 8 | |
store i32* null, i32** %0, align 8 | |
%5 = getelementptr inbounds [0 x %class.anon], [0 x %class.anon]* %agg.tmp32, i64 0, i64 0, i32 2 | |
store i32* %versionStepping.addr, i32** %5, align 8 | |
%call1 = call fastcc %class.Isa* @"_ZSt7find_ifIPK3IsaZNS0_7findIsaEjjjNS0_7FeatureES3_E3$_0ET_S5_S5_T0_"(%class.Isa* %2, %class.Isa* %3, %class.anon* nonnull %agg.tmp32.sub) | |
%cmp = icmp eq %class.Isa* %call1, %3 | |
%spec.select = select i1 %cmp, %class.Isa* null, %class.Isa* %1 | |
ret %class.Isa* %spec.select | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc %class.Isa* @"_ZSt7find_ifIPK3IsaZNS0_7findIsaEjjjNS0_7FeatureES3_E3$_0ET_S5_S5_T0_"(%class.Isa* %__first, %class.Isa* %__last, %class.anon* %__pred) unnamed_addr #0 { | |
entry: | |
%agg.tmp = alloca %"struct.__gnu_cxx::__ops::_Iter_pred", align 8 | |
call fastcc void @"_ZN9__gnu_cxx5__ops11__pred_iterIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EENS0_10_Iter_predIT_EES6_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* nonnull %agg.tmp, %class.anon* %__pred) | |
%call = call fastcc %class.Isa* @"_ZSt9__find_ifIPK3IsaN9__gnu_cxx5__ops10_Iter_predIZNS0_7findIsaEjjjNS0_7FeatureES6_E3$_0EEET_S9_S9_T0_"(%class.Isa* %__first, %class.Isa* %__last, %"struct.__gnu_cxx::__ops::_Iter_pred"* nonnull %agg.tmp) | |
ret %class.Isa* %call | |
} | |
; Function Attrs: sanitize_address | |
define linkonce_odr %class.Isa** @_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE(%class.Isa** %__t) local_unnamed_addr #0 comdat { | |
entry: | |
ret %class.Isa** %__t | |
} | |
; Function Attrs: sanitize_address | |
define linkonce_odr void @_ZNSt4pairIPK3IsaS2_EC2IS2_S2_Lb1EEEOT_OT0_(%"struct.std::pair"* %this, %class.Isa** %__x, %class.Isa** %__y) local_unnamed_addr #0 comdat { | |
entry: | |
%first = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %this, i64 0, i32 0 | |
%call = call %class.Isa** @_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE(%class.Isa** %__x) | |
%0 = load %class.Isa*, %class.Isa** %__x, align 8 | |
store %class.Isa* %0, %class.Isa** %first, align 8 | |
%second = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %this, i64 0, i32 1 | |
%call2 = call %class.Isa** @_ZSt7forwardIPK3IsaEOT_RNSt16remove_referenceIS3_E4typeE(%class.Isa** nonnull %__x) | |
%1 = load %class.Isa*, %class.Isa** %__y, align 8 | |
store %class.Isa* %1, %class.Isa** %second, align 8 | |
ret void | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc %class.Isa* @"_ZSt9__find_ifIPK3IsaN9__gnu_cxx5__ops10_Iter_predIZNS0_7findIsaEjjjNS0_7FeatureES6_E3$_0EEET_S9_S9_T0_"(%class.Isa* %__first, %class.Isa* %__last, %"struct.__gnu_cxx::__ops::_Iter_pred"* %__pred) unnamed_addr #0 { | |
entry: | |
%call = call fastcc %class.Isa* @"_ZSt9__find_ifIPK3IsaN9__gnu_cxx5__ops10_Iter_predIZNS0_7findIsaEjjjNS0_7FeatureES6_E3$_0EEET_S9_S9_T0_St26random_access_iterator_tag"(%class.Isa* %__first, %class.Isa* %__last, %"struct.__gnu_cxx::__ops::_Iter_pred"* %__pred) | |
ret %class.Isa* %call | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc void @"_ZN9__gnu_cxx5__ops11__pred_iterIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EENS0_10_Iter_predIT_EES6_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* sret(%"struct.__gnu_cxx::__ops::_Iter_pred") %agg.result, %class.anon* %__pred) unnamed_addr #0 { | |
entry: | |
%agg.tmp1 = alloca [0 x %class.anon], align 8 | |
%agg.tmp1.sub = getelementptr inbounds [0 x %class.anon], [0 x %class.anon]* %agg.tmp1, i64 0, i64 0 | |
call fastcc void @"_ZSt4moveIRZN3Isa7findIsaEjjjNS0_7FeatureES1_E3$_0EONSt16remove_referenceIT_E4typeEOS5_"() | |
%0 = bitcast [0 x %class.anon]* %agg.tmp1 to i8* | |
%1 = bitcast %class.anon* %__pred to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %0, i8* noundef nonnull align 1 dereferenceable(40) %1, i64 40, i1 false) | |
call fastcc void @"_ZN9__gnu_cxx5__ops10_Iter_predIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EC2ES4_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* %agg.result, %class.anon* nonnull %agg.tmp1.sub) | |
ret void | |
} | |
; Function Attrs: argmemonly mustprogress nofree nounwind willreturn | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 | |
; Function Attrs: sanitize_address | |
define internal fastcc %class.Isa* @"_ZSt9__find_ifIPK3IsaN9__gnu_cxx5__ops10_Iter_predIZNS0_7findIsaEjjjNS0_7FeatureES6_E3$_0EEET_S9_S9_T0_St26random_access_iterator_tag"(%class.Isa* %__first, %class.Isa* %__last, %"struct.__gnu_cxx::__ops::_Iter_pred"* %__pred) unnamed_addr #0 { | |
entry: | |
%sub.ptr.lhs.cast = ptrtoint %class.Isa* %__last to i64 | |
%sub.ptr.rhs.cast = ptrtoint %class.Isa* %__first to i64 | |
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast | |
%shr = ashr i64 %sub.ptr.sub, 6 | |
br label %for.cond | |
for.cond: ; preds = %if.end, %entry | |
%__trip_count.0 = phi i64 [ %shr, %entry ], [ %dec, %if.end ] | |
%__first.addr.0 = phi %class.Isa* [ %__first, %entry ], [ %incdec.ptr8, %if.end ] | |
%cmp = icmp sgt i64 %__trip_count.0, 0 | |
br i1 %cmp, label %for.body, label %for.end | |
for.body: ; preds = %for.cond | |
%call = call fastcc i1 @"_ZN9__gnu_cxx5__ops10_Iter_predIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EclIPKS2_EEbT_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* %__pred, %class.Isa* %__first.addr.0) | |
br i1 %call, label %cleanup, label %if.end | |
if.end: ; preds = %for.body | |
%incdec.ptr8 = getelementptr inbounds %class.Isa, %class.Isa* %__first.addr.0, i64 3 | |
%dec = add nsw i64 %__trip_count.0, -1 | |
br label %for.cond | |
for.end: ; preds = %for.cond | |
%sub.ptr.rhs.cast14 = ptrtoint %class.Isa* %__first.addr.0 to i64 | |
%sub.ptr.sub15 = sub i64 %sub.ptr.rhs.cast, %sub.ptr.rhs.cast14 | |
%0 = and i64 %sub.ptr.sub15, -2 | |
%switch = icmp eq i64 %0, 2 | |
br i1 %switch, label %sw.bb21, label %cleanup | |
sw.bb21: ; preds = %for.end | |
%call22 = call fastcc i1 @"_ZN9__gnu_cxx5__ops10_Iter_predIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EclIPKS2_EEbT_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* null, %class.Isa* null) | |
br label %cleanup | |
cleanup: ; preds = %sw.bb21, %for.end, %for.body | |
%retval.0 = phi %class.Isa* [ %__first.addr.0, %for.body ], [ %__last, %for.end ], [ %__last, %sw.bb21 ] | |
ret %class.Isa* %retval.0 | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc i1 @"_ZN9__gnu_cxx5__ops10_Iter_predIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EclIPKS2_EEbT_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* %this, %class.Isa* %__it) unnamed_addr #0 { | |
entry: | |
%_M_pred = getelementptr inbounds %"struct.__gnu_cxx::__ops::_Iter_pred", %"struct.__gnu_cxx::__ops::_Iter_pred"* %this, i64 0, i32 0 | |
%call1 = call fastcc i1 @"_ZZN3Isa7findIsaEjjjNS_7FeatureES0_ENK3$_0clERKS_"(%class.anon* %_M_pred, %class.Isa* %__it) | |
ret i1 %call1 | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc i1 @"_ZZN3Isa7findIsaEjjjNS_7FeatureES0_ENK3$_0clERKS_"(%class.anon* %this, %class.Isa* %isa) unnamed_addr #0 { | |
entry: | |
%0 = getelementptr inbounds %class.anon, %class.anon* %this, i64 0, i32 0 | |
%1 = load i32*, i32** %0, align 8 | |
%2 = load i32, i32* %1, align 4 | |
%versionMajor_ = getelementptr inbounds %class.Isa, %class.Isa* %isa, i64 0, i32 0 | |
%3 = load i32, i32* %versionMajor_, align 4 | |
%cmp = icmp eq i32 %2, %3 | |
br i1 %cmp, label %land.lhs.true, label %land.end | |
land.lhs.true: ; preds = %entry | |
%4 = getelementptr inbounds %class.anon, %class.anon* %this, i64 0, i32 2 | |
%5 = load i32*, i32** %4, align 8 | |
%6 = load i32, i32* %5, align 4 | |
%versionStepping_ = getelementptr inbounds %class.Isa, %class.Isa* %isa, i64 0, i32 2 | |
%7 = load i32, i32* %versionStepping_, align 4 | |
%cmp4 = icmp eq i32 %6, %7 | |
br label %land.end | |
land.end: ; preds = %land.lhs.true, %entry | |
%8 = phi i1 [ false, %entry ], [ %cmp4, %land.lhs.true ] | |
ret i1 %8 | |
} | |
define internal fastcc void @"_ZSt4moveIRZN3Isa7findIsaEjjjNS0_7FeatureES1_E3$_0EONSt16remove_referenceIT_E4typeEOS5_"() unnamed_addr { | |
entry: | |
ret void | |
} | |
; Function Attrs: sanitize_address | |
define internal fastcc void @"_ZN9__gnu_cxx5__ops10_Iter_predIZN3Isa7findIsaEjjjNS2_7FeatureES3_E3$_0EC2ES4_"(%"struct.__gnu_cxx::__ops::_Iter_pred"* %this, %class.anon* %__pred) unnamed_addr #0 { | |
entry: | |
call fastcc void @"_ZSt4moveIRZN3Isa7findIsaEjjjNS0_7FeatureES1_E3$_0EONSt16remove_referenceIT_E4typeEOS5_"() | |
%0 = bitcast %"struct.__gnu_cxx::__ops::_Iter_pred"* %this to i8* | |
%1 = bitcast %class.anon* %__pred to i8* | |
%2 = load i8, i8* %1, align 1 | |
store i8 %2, i8* %0, align 1 | |
ret void | |
} | |
attributes #0 = { sanitize_address } | |
attributes #1 = { argmemonly mustprogress nofree nounwind willreturn } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment