brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 701f2fa Raw
38 lines · c
1// RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-none--eabi | FileCheck %s2// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-none--eabi | FileCheck %s3// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-openbsd | FileCheck %s4 5int i;6long long l;7 8typedef enum memory_order {9  memory_order_relaxed, memory_order_consume, memory_order_acquire,10  memory_order_release, memory_order_acq_rel, memory_order_seq_cst11} memory_order;12 13void test_presence(void)14{15  // CHECK-LABEL: @test_presence16  // CHECK: atomicrmw add ptr {{.*}} seq_cst, align 417  __atomic_fetch_add(&i, 1, memory_order_seq_cst);18  // CHECK: atomicrmw sub ptr {{.*}} seq_cst, align 419  __atomic_fetch_sub(&i, 1, memory_order_seq_cst);20  // CHECK: load atomic i32, ptr {{.*}} seq_cst, align 421  int r;22  __atomic_load(&i, &r, memory_order_seq_cst);23  // CHECK: store atomic i32 {{.*}} seq_cst, align 424  r = 0;25  __atomic_store(&i, &r, memory_order_seq_cst);26 27  // CHECK: atomicrmw add ptr {{.*}} seq_cst, align 828  __atomic_fetch_add(&l, 1, memory_order_seq_cst);29  // CHECK: atomicrmw sub ptr {{.*}} seq_cst, align 830  __atomic_fetch_sub(&l, 1, memory_order_seq_cst);31  // CHECK: load atomic i64, ptr {{.*}} seq_cst, align 832  long long rl;33  __atomic_load(&l, &rl, memory_order_seq_cst);34  // CHECK: store atomic i64 {{.*}} seq_cst, align 835  rl = 0;36  __atomic_store(&l, &rl, memory_order_seq_cst);37}38