brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · d307bd6 Raw
42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4@x = weak global i32 05 6define void @self_assign_1() {7; CHECK-LABEL: @self_assign_1(8; CHECK-NEXT:  entry:9; CHECK-NEXT:    [[TMP:%.*]] = load volatile i32, ptr @x, align 410; CHECK-NEXT:    store volatile i32 [[TMP]], ptr @x, align 411; CHECK-NEXT:    br label [[RETURN:%.*]]12; CHECK:       return:13; CHECK-NEXT:    ret void14;15entry:16  %tmp = load volatile i32, ptr @x17  store volatile i32 %tmp, ptr @x18  br label %return19 20return:21  ret void22}23 24define void @volatile_store_before_unreachable(i1 %c, ptr %p) {25; CHECK-LABEL: @volatile_store_before_unreachable(26; CHECK-NEXT:    br i1 [[C:%.*]], label [[TRUE:%.*]], label [[FALSE:%.*]]27; CHECK:       true:28; CHECK-NEXT:    store volatile i8 0, ptr [[P:%.*]], align 129; CHECK-NEXT:    unreachable30; CHECK:       false:31; CHECK-NEXT:    ret void32;33  br i1 %c, label %true, label %false34 35true:36  store volatile i8 0, ptr %p37  unreachable38 39false:40  ret void41}42