brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 10235a3 Raw
153 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=dse -S | FileCheck %s3 4target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"5 6define void @second_store_smaller_1(ptr noalias %P, i1 %c) {7; CHECK-LABEL: @second_store_smaller_1(8; CHECK-NEXT:    store i32 0, ptr [[P:%.*]], align 49; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]10; CHECK:       bb1:11; CHECK-NEXT:    br label [[BB3:%.*]]12; CHECK:       bb2:13; CHECK-NEXT:    br label [[BB3]]14; CHECK:       bb3:15; CHECK-NEXT:    ret void16;17  store i32 1, ptr %P18  br i1 %c, label %bb1, label %bb219bb1:20  br label %bb321bb2:22  br label %bb323bb3:24  store i16 0, ptr %P25  ret void26}27 28define void @second_store_smaller_2(ptr noalias %P, i1 %c) {29; CHECK-LABEL: @second_store_smaller_2(30; CHECK-NEXT:    store i32 12345, ptr [[P:%.*]], align 431; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]32; CHECK:       bb1:33; CHECK-NEXT:    br label [[BB3:%.*]]34; CHECK:       bb2:35; CHECK-NEXT:    br label [[BB3]]36; CHECK:       bb3:37; CHECK-NEXT:    ret void38;39  store i32 1, ptr %P40  br i1 %c, label %bb1, label %bb241bb1:42  br label %bb343bb2:44  br label %bb345bb3:46  store i16 12345, ptr %P47  ret void48}49 50declare void @use(i16) readnone51declare void @use.i8(i8) readnone52 53define void @second_store_smaller_3(ptr noalias %P, i1 %c) {54; CHECK-LABEL: @second_store_smaller_3(55; CHECK-NEXT:    store i32 1, ptr [[P:%.*]], align 456; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]57; CHECK:       bb1:58; CHECK-NEXT:    [[L1:%.*]] = load i16, ptr [[P]], align 259; CHECK-NEXT:    call void @use(i16 [[L1]])60; CHECK-NEXT:    br label [[BB3:%.*]]61; CHECK:       bb2:62; CHECK-NEXT:    br label [[BB3]]63; CHECK:       bb3:64; CHECK-NEXT:    store i16 -31073, ptr [[P]], align 265; CHECK-NEXT:    ret void66;67  store i32 1, ptr %P68  br i1 %c, label %bb1, label %bb269 70bb1:71  %l1 = load i16, ptr %P72  call void @use(i16 %l1)73  br label %bb374bb2:75  br label %bb376bb3:77  store i16 -31073, ptr %P78  ret void79}80 81define void @second_store_smaller_4(ptr noalias %P, i1 %c) {82; CHECK-LABEL: @second_store_smaller_4(83; CHECK-NEXT:    store i32 1, ptr [[P:%.*]], align 484; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]85; CHECK:       bb1:86; CHECK-NEXT:    [[L1:%.*]] = load i8, ptr [[P]], align 187; CHECK-NEXT:    call void @use.i8(i8 [[L1]])88; CHECK-NEXT:    br label [[BB3:%.*]]89; CHECK:       bb2:90; CHECK-NEXT:    br label [[BB3]]91; CHECK:       bb3:92; CHECK-NEXT:    store i16 -31073, ptr [[P]], align 293; CHECK-NEXT:    ret void94;95  store i32 1, ptr %P96  br i1 %c, label %bb1, label %bb297 98bb1:99  %l1 = load i8, ptr %P100  call void @use.i8(i8 %l1)101  br label %bb3102bb2:103  br label %bb3104bb3:105  store i16 -31073, ptr %P106  ret void107}108 109define void @second_store_smaller_5(ptr noalias %P, i16 %x, i1 %c) {110; CHECK-LABEL: @second_store_smaller_5(111; CHECK-NEXT:    store i32 1, ptr [[P:%.*]], align 4112; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]113; CHECK:       bb1:114; CHECK-NEXT:    br label [[BB3:%.*]]115; CHECK:       bb2:116; CHECK-NEXT:    br label [[BB3]]117; CHECK:       bb3:118; CHECK-NEXT:    store i16 [[X:%.*]], ptr [[P]], align 2119; CHECK-NEXT:    ret void120;121  store i32 1, ptr %P122  br i1 %c, label %bb1, label %bb2123bb1:124  br label %bb3125bb2:126  br label %bb3127bb3:128  store i16 %x, ptr %P129  ret void130}131 132define void @second_store_bigger(ptr noalias %P, i1 %c) {133; CHECK-LABEL: @second_store_bigger(134; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]135; CHECK:       bb1:136; CHECK-NEXT:    br label [[BB3:%.*]]137; CHECK:       bb2:138; CHECK-NEXT:    br label [[BB3]]139; CHECK:       bb3:140; CHECK-NEXT:    store i64 0, ptr [[P:%.*]], align 8141; CHECK-NEXT:    ret void142;143  store i32 1, ptr %P144  br i1 %c, label %bb1, label %bb2145bb1:146  br label %bb3147bb2:148  br label %bb3149bb3:150  store i64 0, ptr %P151  ret void152}153