brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 94e344c Raw
36 lines · c
1// RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv6m-none--eabi -target-cpu cortex-m0 | FileCheck %s2 3int i;4long long l;5 6typedef enum memory_order {7  memory_order_relaxed, memory_order_consume, memory_order_acquire,8  memory_order_release, memory_order_acq_rel, memory_order_seq_cst9} memory_order;10 11void test_presence(void)12{13  // CHECK-LABEL: @test_presence14  // CHECK: atomicrmw add ptr {{.*}} seq_cst, align 415  __atomic_fetch_add(&i, 1, memory_order_seq_cst);16  // CHECK: atomicrmw sub {{.*}} seq_cst, align 417  __atomic_fetch_sub(&i, 1, memory_order_seq_cst);18  // CHECK: load atomic i32, ptr {{.*}} seq_cst, align 419  int r;20  __atomic_load(&i, &r, memory_order_seq_cst);21  // CHECK: store atomic i32 {{.*}}, ptr {{.*}} seq_cst, align 422  r = 0;23  __atomic_store(&i, &r, memory_order_seq_cst);24 25  // CHECK: atomicrmw add {{.*}} seq_cst, align 826  __atomic_fetch_add(&l, 1, memory_order_seq_cst);27  // CHECK: atomicrmw sub {{.*}} seq_cst, align 828  __atomic_fetch_sub(&l, 1, memory_order_seq_cst);29  // CHECK: load atomic i64, ptr {{.*}} seq_cst, align 830  long long rl;31  __atomic_load(&l, &rl, memory_order_seq_cst);32  // CHECK: store atomic i64 {{.*}}, ptr {{.*}} seq_cst, align 833  rl = 0;34  __atomic_store(&l, &rl, memory_order_seq_cst);35}36