brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · c894e7b Raw
45 lines · c
1// RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=amdgcn-amd-amdhsa \2// RUN:   | FileCheck -check-prefixes=FLOAT,DOUBLE %s3 4// RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=aarch64-linux-gnu \5// RUN:   | FileCheck -check-prefixes=FLOAT,DOUBLE %s6 7// RUN: %clang_cc1 %s -emit-llvm -O0 -o - -triple=armv8-apple-ios7.0 \8// RUN:   | FileCheck -check-prefixes=FLOAT %s9 10// RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=hexagon \11// RUN:   | FileCheck -check-prefixes=FLOAT,DOUBLE %s12 13// RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=mips64-mti-linux-gnu \14// RUN:   | FileCheck -check-prefixes=FLOAT,DOUBLE %s15 16// RUN: %clang_cc1 %s -emit-llvm -O0 -o - -triple=i686-linux-gnu \17// RUN:   | FileCheck -check-prefixes=FLOAT %s18 19// RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=x86_64-linux-gnu \20// RUN:   | FileCheck -check-prefixes=FLOAT,DOUBLE %s21 22typedef enum memory_order {23  memory_order_relaxed = __ATOMIC_RELAXED,24  memory_order_acquire = __ATOMIC_ACQUIRE,25  memory_order_release = __ATOMIC_RELEASE,26  memory_order_acq_rel = __ATOMIC_ACQ_REL,27  memory_order_seq_cst = __ATOMIC_SEQ_CST28} memory_order;29 30void test(float *f, float ff, double *d, double dd) {31  // FLOAT: atomicrmw fadd ptr {{.*}} monotonic32  __atomic_fetch_add(f, ff, memory_order_relaxed);33 34  // FLOAT: atomicrmw fsub ptr {{.*}} monotonic35  __atomic_fetch_sub(f, ff, memory_order_relaxed);36 37#ifdef DOUBLE38  // DOUBLE: atomicrmw fadd ptr {{.*}} monotonic39  __atomic_fetch_add(d, dd, memory_order_relaxed);40 41  // DOUBLE: atomicrmw fsub ptr {{.*}} monotonic42  __atomic_fetch_sub(d, dd, memory_order_relaxed);43#endif44}45