brintos

brintos / llvm-project-archived public Read only

0
0
Text · 951 B · da8152a Raw
34 lines · c
1// RUN: %clang_cc1 -triple x86_64-apple-macosx10.14.0 -fsanitize=unsigned-integer-overflow %s -emit-llvm -o - | FileCheck %s2 3_Atomic(unsigned) atomic;4 5// CHECK-LABEL: define{{.*}} void @cmpd_assign6void cmpd_assign(void) {7  // CHECK: br label %[[LOOP_START:.*]]8 9  // CHECK: [[LOOP_START]]:10  // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ]11 12  // CHECK: [[INCOMING_BLOCK]]:13  // CHECK-NEXT: cmpxchg14  // CHECK-NEXT: extractvalue15  // CHECK-NEXT: extractvalue16  // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]]17  atomic += 1;18}19 20// CHECK-LABEL: define{{.*}} void @inc21void inc(void) {22  // CHECK: br label %[[LOOP_START:.*]]23 24  // CHECK: [[LOOP_START]]:25  // CHECK-NEXT: phi i32 {{.*}}, [ {{.*}}, %[[INCOMING_BLOCK:.*]] ]26 27  // CHECK: [[INCOMING_BLOCK]]:28  // CHECK-NEXT: cmpxchg29  // CHECK-NEXT: extractvalue30  // CHECK-NEXT: extractvalue31  // CHECK-NEXT: br i1 %8, label %{{.*}}, label %[[LOOP_START]]32  atomic++;33}34