93 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=mergeicmps -verify-dom-info -mtriple=x86_64-unknown-unknown -S | FileCheck %s --check-prefix=X863 4source_filename = "qabstractitemmodeltester.cpp"5target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"6target triple = "x86_64--linux-gnu"7 8%class.B = type { i32, i32 }9%class.D = type { i32 }10%class.C = type { i8 }11%class.QMessageLogger = type { i8 }12 13$_ZN1D7compareI1BS1_EEbRKT_RKT0_PKcS9_S9_i = comdat any14 15@.str = private unnamed_addr constant [1 x i8] zeroinitializer, align 116 17; Function Attrs: uwtable18define linkonce_odr dso_local zeroext i1 @_ZN1D7compareI1BS1_EEbRKT_RKT0_PKcS9_S9_i(ptr %this, ptr dereferenceable(8) %p1, ptr dereferenceable(8) %p2, ptr, ptr, ptr, i32) local_unnamed_addr #0 comdat align 2 {19; X86-LABEL: @_ZN1D7compareI1BS1_EEbRKT_RKT0_PKcS9_S9_i(20; X86-NEXT: entry:21; X86-NEXT: [[REF_TMP:%.*]] = alloca [[CLASS_C:%.*]], align 122; X86-NEXT: [[TMP4:%.*]] = load i32, ptr [[P2:%.*]], align 423; X86-NEXT: [[TMP5:%.*]] = load i32, ptr [[P1:%.*]], align 424; X86-NEXT: [[CMP_ENTRY:%.*]] = icmp eq i32 [[TMP4]], [[TMP5]]25; X86-NEXT: br i1 [[CMP_ENTRY]], label [[BB1:%.*]], label [[BB2:%.*]]26; X86: bb1:27; X86-NEXT: [[M_I:%.*]] = getelementptr inbounds [[CLASS_B:%.*]], ptr [[P2]], i64 0, i32 128; X86-NEXT: [[TMP6:%.*]] = load i32, ptr [[M_I]], align 429; X86-NEXT: [[M3_I:%.*]] = getelementptr inbounds [[CLASS_B]], ptr [[P1]], i64 0, i32 130; X86-NEXT: [[TMP7:%.*]] = load i32, ptr [[M3_I]], align 431; X86-NEXT: [[CMP1:%.*]] = icmp eq i32 [[TMP6]], [[TMP7]]32; X86-NEXT: br label [[BB2]]33; X86: bb2:34; X86-NEXT: [[TMP8:%.*]] = phi i1 [ false, [[ENTRY:%.*]] ], [ [[CMP1]], [[BB1]] ]35; X86-NEXT: [[TMP9:%.*]] = load i32, ptr [[THIS:%.*]], align 436; X86-NEXT: [[COND:%.*]] = icmp eq i32 [[TMP9]], 037; X86-NEXT: br i1 [[COND]], label [[BB3:%.*]], label [[SW_EPILOG:%.*]]38; X86: bb3:39; X86-NEXT: br i1 [[CMP_ENTRY]], label [[BB4:%.*]], label [[BB5:%.*]]40; X86: bb4:41; X86-NEXT: [[M_I_I:%.*]] = getelementptr inbounds [[CLASS_B]], ptr [[P2]], i64 0, i32 142; X86-NEXT: [[TMP10:%.*]] = load i32, ptr [[M_I_I]], align 443; X86-NEXT: [[M3_I_I:%.*]] = getelementptr inbounds [[CLASS_B]], ptr [[P1]], i64 0, i32 144; X86-NEXT: [[TMP11:%.*]] = load i32, ptr [[M3_I_I]], align 445; X86-NEXT: [[CMP4:%.*]] = icmp eq i32 [[TMP10]], [[TMP11]]46; X86-NEXT: br label [[BB5]]47; X86: bb5:48; X86-NEXT: [[TMP12:%.*]] = phi i1 [ false, [[BB3]] ], [ [[CMP4]], [[BB4]] ]49; X86-NEXT: br label [[SW_EPILOG]]50; X86: sw.epilog:51; X86-NEXT: ret i1 [[TMP8]]52;53entry:54 %ref.tmp = alloca %class.C, align 155 %4 = load i32, ptr %p2, align 456 %5 = load i32, ptr %p1, align 457 %cmp_entry = icmp eq i32 %4, %558 br i1 %cmp_entry, label %bb1, label %bb259 60bb1: ; preds = %entry61 %m.i = getelementptr inbounds %class.B, ptr %p2, i64 0, i32 162 %6 = load i32, ptr %m.i, align 463 %m3.i = getelementptr inbounds %class.B, ptr %p1, i64 0, i32 164 %7 = load i32, ptr %m3.i, align 465 %cmp1 = icmp eq i32 %6, %766 br label %bb267 68bb2: ; preds = %entry, %bb169 %8 = phi i1 [ false, %entry ], [ %cmp1, %bb1 ]70 %9 = load i32, ptr %this, align 471 %cond = icmp eq i32 %9, 072 br i1 %cond, label %bb3, label %sw.epilog73 74bb3: ; preds = %bb275 br i1 %cmp_entry, label %bb4, label %bb576 77bb4: ; preds = %bb378 %m.i.i = getelementptr inbounds %class.B, ptr %p2, i64 0, i32 179 %10 = load i32, ptr %m.i.i, align 480 %m3.i.i = getelementptr inbounds %class.B, ptr %p1, i64 0, i32 181 %11 = load i32, ptr %m3.i.i, align 482 %cmp4 = icmp eq i32 %10, %1183 br label %bb584 85bb5: ; preds = %bb3, %bb486 %12 = phi i1 [ false, %bb3 ], [ %cmp4, %bb4 ]87 br label %sw.epilog88 89sw.epilog: ; preds = %bb290 ret i1 %891}92 93