brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · fe44838 Raw
56 lines · cpp
1// RUN: %clang_cc1 -std=gnu++11 -emit-llvm -triple=x86_64-linux-gnu -o - %s | FileCheck %s2 3_Atomic unsigned an_atomic_uint;4 5enum { an_enum_value = 1 };6 7// CHECK-LABEL: define {{.*}}void @_Z5enum1v()8void enum1() {9  an_atomic_uint += an_enum_value;10  // CHECK: atomicrmw add ptr11}12 13// CHECK-LABEL: define {{.*}}void @_Z5enum2v()14void enum2() {15  an_atomic_uint |= an_enum_value;16  // CHECK: atomicrmw or ptr17}18 19// CHECK-LABEL: define {{.*}}void @_Z5enum3RU7_Atomicj({{.*}})20void enum3(_Atomic unsigned &an_atomic_uint_param) {21  an_atomic_uint_param += an_enum_value;22  // CHECK: atomicrmw add ptr23}24 25// CHECK-LABEL: define {{.*}}void @_Z5enum4RU7_Atomicj({{.*}})26void enum4(_Atomic unsigned &an_atomic_uint_param) {27  an_atomic_uint_param |= an_enum_value;28  // CHECK: atomicrmw or ptr29}30 31volatile _Atomic unsigned an_volatile_atomic_uint;32 33// CHECK-LABEL: define {{.*}}void @_Z5enum5v()34void enum5() {35  an_volatile_atomic_uint += an_enum_value;36  // CHECK: atomicrmw add ptr37}38 39// CHECK-LABEL: define {{.*}}void @_Z5enum6v()40void enum6() {41  an_volatile_atomic_uint |= an_enum_value;42  // CHECK: atomicrmw or ptr43}44 45// CHECK-LABEL: define {{.*}}void @_Z5enum7RVU7_Atomicj({{.*}})46void enum7(volatile _Atomic unsigned &an_volatile_atomic_uint_param) {47  an_volatile_atomic_uint_param += an_enum_value;48  // CHECK: atomicrmw add ptr49}50 51// CHECK-LABEL: define {{.*}}void @_Z5enum8RVU7_Atomicj({{.*}})52void enum8(volatile _Atomic unsigned &an_volatile_atomic_uint_param) {53  an_volatile_atomic_uint_param |= an_enum_value;54  // CHECK: atomicrmw or ptr55}56