brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · 07d536d Raw
142 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; ModuleID = 'reduced.ll'3; RUN: opt < %s -passes=loop-unroll -verify-loop-lcssa -S | FileCheck %s4 5source_filename = "reduced.ll"6 7%"class.std::__Cr::basic_ostream" = type { ptr, %"class.std::__Cr::basic_ios" }8%"class.std::__Cr::basic_ios" = type { %"class.std::__Cr::ios_base", ptr, i32 }9%"class.std::__Cr::ios_base" = type { ptr, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, i32, ptr, i32, i32 }10%"class.v8::internal::wasm::StructType" = type { i32, ptr, ptr, ptr }11%"class.v8::internal::wasm::ValueType" = type { i32 }12 13$_ZNK2v88internal4wasm10StructType12field_offsetEj = comdat any14 15declare hidden ptr @_ZNSt4__CrlsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc() local_unnamed_addr16 17define hidden void @_ZN2v88internal10WasmStruct15WasmStructPrintERNSt4__Cr13basic_ostreamIcNS2_11char_traitsIcEEEE() local_unnamed_addr align 2 {18; CHECK-LABEL: @_ZN2v88internal10WasmStruct15WasmStructPrintERNSt4__Cr13basic_ostreamIcNS2_11char_traitsIcEEEE(19; CHECK-NEXT:  entry:20; CHECK-NEXT:    [[CALL61:%.*]] = tail call i32 @_ZNK2v88internal4wasm10StructType11field_countEv()21; CHECK-NEXT:    [[CMP2_NOT:%.*]] = icmp eq i32 [[CALL61]], 022; CHECK-NEXT:    br i1 [[CMP2_NOT]], label [[FOR_COND_CLEANUP:%.*]], label [[FOR_BODY_PREHEADER:%.*]]23; CHECK:       for.body.preheader:24; CHECK-NEXT:    br label [[FOR_BODY_PEEL_BEGIN:%.*]]25; CHECK:       for.body.peel.begin:26; CHECK-NEXT:    br label [[FOR_BODY_PEEL:%.*]]27; CHECK:       for.body.peel:28; CHECK-NEXT:    tail call void @llvm.assume(i1 true)29; CHECK-NEXT:    [[CALL13_PEEL:%.*]] = tail call i8 @_ZNK2v88internal4wasm9ValueType4kindEv()30; CHECK-NEXT:    switch i8 [[CALL13_PEEL]], label [[FOR_INC_PEEL:%.*]] [31; CHECK-NEXT:    i8 5, label [[SW_BB33_PEEL:%.*]]32; CHECK-NEXT:    i8 9, label [[SW_BB31:%.*]]33; CHECK-NEXT:    i8 8, label [[SW_BB31]]34; CHECK-NEXT:    i8 11, label [[SW_BB31]]35; CHECK-NEXT:    i8 10, label [[SW_BB31]]36; CHECK-NEXT:    ]37; CHECK:       sw.bb33.peel:38; CHECK-NEXT:    [[CALL34_PEEL:%.*]] = tail call ptr @_ZNSt4__CrlsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc()39; CHECK-NEXT:    br label [[FOR_INC_PEEL]]40; CHECK:       for.inc.peel:41; CHECK-NEXT:    [[CALL6_PEEL:%.*]] = tail call i32 @_ZNK2v88internal4wasm10StructType11field_countEv()42; CHECK-NEXT:    [[CMP_PEEL:%.*]] = icmp ugt i32 [[CALL6_PEEL]], 143; CHECK-NEXT:    br i1 [[CMP_PEEL]], label [[FOR_BODY_PEEL_NEXT:%.*]], label [[FOR_COND_CLEANUP_LOOPEXIT:%.*]]44; CHECK:       for.body.peel.next:45; CHECK-NEXT:    br label [[FOR_BODY_PEEL_NEXT1:%.*]]46; CHECK:       for.body.peel.next1:47; CHECK-NEXT:    br label [[FOR_BODY_PREHEADER_PEEL_NEWPH:%.*]]48; CHECK:       for.body.preheader.peel.newph:49; CHECK-NEXT:    br label [[FOR_BODY:%.*]]50; CHECK:       for.cond.cleanup.loopexit.loopexit:51; CHECK-NEXT:    br label [[FOR_COND_CLEANUP_LOOPEXIT]]52; CHECK:       for.cond.cleanup.loopexit:53; CHECK-NEXT:    br label [[FOR_COND_CLEANUP]]54; CHECK:       for.cond.cleanup:55; CHECK-NEXT:    ret void56; CHECK:       for.body:57; CHECK-NEXT:    tail call void @llvm.assume(i1 false)58; CHECK-NEXT:    [[CALL13:%.*]] = tail call i8 @_ZNK2v88internal4wasm9ValueType4kindEv()59; CHECK-NEXT:    switch i8 [[CALL13]], label [[FOR_INC:%.*]] [60; CHECK-NEXT:    i8 5, label [[SW_BB33:%.*]]61; CHECK-NEXT:    i8 9, label [[SW_BB31_LOOPEXIT:%.*]]62; CHECK-NEXT:    i8 8, label [[SW_BB31_LOOPEXIT]]63; CHECK-NEXT:    i8 11, label [[SW_BB31_LOOPEXIT]]64; CHECK-NEXT:    i8 10, label [[SW_BB31_LOOPEXIT]]65; CHECK-NEXT:    ]66; CHECK:       sw.bb31.loopexit:67; CHECK-NEXT:    br label [[SW_BB31]]68; CHECK:       sw.bb31:69; CHECK-NEXT:    tail call void @_ZN2v84baseL18ReadUnalignedValueINS_8internal6ObjectEEET_j()70; CHECK-NEXT:    unreachable71; CHECK:       sw.bb33:72; CHECK-NEXT:    [[CALL34:%.*]] = tail call ptr @_ZNSt4__CrlsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc()73; CHECK-NEXT:    br label [[FOR_INC]]74; CHECK:       for.inc:75; CHECK-NEXT:    [[CALL6:%.*]] = tail call i32 @_ZNK2v88internal4wasm10StructType11field_countEv()76; CHECK-NEXT:    [[CMP:%.*]] = icmp ugt i32 [[CALL6]], 177; CHECK-NEXT:    br i1 [[CMP]], label [[FOR_BODY]], label [[FOR_COND_CLEANUP_LOOPEXIT_LOOPEXIT:%.*]], !llvm.loop [[LOOP0:![0-9]+]]78;79entry:80  %call61 = tail call i32 @_ZNK2v88internal4wasm10StructType11field_countEv()81  %cmp2.not = icmp eq i32 %call61, 082  br i1 %cmp2.not, label %for.cond.cleanup, label %for.body.preheader83 84for.body.preheader:                               ; preds = %entry85  br label %for.body86 87for.cond.cleanup.loopexit:                        ; preds = %for.inc88  br label %for.cond.cleanup89 90for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry91  ret void92 93for.body:                                         ; preds = %for.body.preheader, %for.inc94  %cmp.i3 = phi i1 [ false, %for.inc ], [ true, %for.body.preheader ]95  tail call void @llvm.assume(i1 %cmp.i3)96  %call13 = tail call i8 @_ZNK2v88internal4wasm9ValueType4kindEv()97  switch i8 %call13, label %for.inc [98  i8 5, label %sw.bb3399  i8 9, label %sw.bb31100  i8 8, label %sw.bb31101  i8 11, label %sw.bb31102  i8 10, label %sw.bb31103  ]104 105sw.bb31:                                          ; preds = %for.body, %for.body, %for.body, %for.body106  tail call void @_ZN2v84baseL18ReadUnalignedValueINS_8internal6ObjectEEET_j()107  unreachable108 109sw.bb33:                                          ; preds = %for.body110  %call34 = tail call ptr @_ZNSt4__CrlsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc()111  br label %for.inc112 113for.inc:                                          ; preds = %for.body, %sw.bb33114  %call6 = tail call i32 @_ZNK2v88internal4wasm10StructType11field_countEv()115  %cmp = icmp ugt i32 %call6, 1116  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit117}118 119declare hidden i32 @_ZNK2v88internal4wasm10StructType11field_countEv() local_unnamed_addr align 2120 121define linkonce_odr hidden i32 @_ZNK2v88internal4wasm10StructType12field_offsetEj(ptr %this, i32 %index) local_unnamed_addr comdat align 2 {122; CHECK-LABEL: @_ZNK2v88internal4wasm10StructType12field_offsetEj(123; CHECK-NEXT:  entry:124; CHECK-NEXT:    [[CMP:%.*]] = icmp eq i32 [[INDEX:%.*]], 0125; CHECK-NEXT:    tail call void @llvm.assume(i1 [[CMP]])126; CHECK-NEXT:    ret i32 undef127;128entry:129  %cmp = icmp eq i32 %index, 0130  tail call void @llvm.assume(i1 %cmp)131  ret i32 undef132}133 134declare hidden i8 @_ZNK2v88internal4wasm9ValueType4kindEv() local_unnamed_addr align 2135 136declare void @_ZN2v84baseL18ReadUnalignedValueINS_8internal6ObjectEEET_j() local_unnamed_addr137 138; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn139declare void @llvm.assume(i1 noundef) #0140 141attributes #0 = { inaccessiblememonly nofree nosync nounwind willreturn }142