brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 745a3ed Raw
66 lines · plain
1; RUN: sed -e "s/ORDER/monotonic/" -e "s/BINARY_OP/and/" %s | llc -mtriple=hexagon | FileCheck %s2; RUN: sed -e "s/ORDER/acquire/" -e "s/BINARY_OP/and/" %s | llc -mtriple=hexagon | FileCheck %s3; RUN: sed -e "s/ORDER/release/" -e "s/BINARY_OP/and/" %s | llc -mtriple=hexagon | FileCheck %s4; RUN: sed -e "s/ORDER/acq_rel/" -e "s/BINARY_OP/and/" %s | llc -mtriple=hexagon | FileCheck %s5; RUN: sed -e "s/ORDER/seq_cst/" -e "s/BINARY_OP/and/" %s | llc -mtriple=hexagon | FileCheck %s6; RUN: sed -e "s/ORDER/monotonic/" -e "s/BINARY_OP/xor/" %s | llc -mtriple=hexagon | FileCheck %s7; RUN: sed -e "s/ORDER/acquire/" -e "s/BINARY_OP/xor/" %s | llc -mtriple=hexagon | FileCheck %s8; RUN: sed -e "s/ORDER/release/" -e "s/BINARY_OP/xor/" %s | llc -mtriple=hexagon | FileCheck %s9; RUN: sed -e "s/ORDER/acq_rel/" -e "s/BINARY_OP/xor/" %s | llc -mtriple=hexagon | FileCheck %s10; RUN: sed -e "s/ORDER/seq_cst/" -e "s/BINARY_OP/xor/" %s | llc -mtriple=hexagon | FileCheck %s11; RUN: sed -e "s/ORDER/monotonic/" -e "s/BINARY_OP/or/" %s | llc -mtriple=hexagon | FileCheck %s12; RUN: sed -e "s/ORDER/acquire/" -e "s/BINARY_OP/or/" %s | llc -mtriple=hexagon | FileCheck %s13; RUN: sed -e "s/ORDER/release/" -e "s/BINARY_OP/or/" %s | llc -mtriple=hexagon | FileCheck %s14; RUN: sed -e "s/ORDER/acq_rel/" -e "s/BINARY_OP/or/" %s | llc -mtriple=hexagon | FileCheck %s15; RUN: sed -e "s/ORDER/seq_cst/" -e "s/BINARY_OP/or/" %s | llc -mtriple=hexagon | FileCheck %s16 17@g0 = global i32 0, align 418@g1 = global i32 0, align 419@g2 = global i32 0, align 420@g3 = global i64 0, align 821@g4 = global i64 0, align 822@g5 = global i64 0, align 823 24; CHECK-LABEL: f0:25; CHECK: // %[[BINARY_OP:[a-z_]*]]_entry26; CHECK-DAG: [[SECOND_ADDR:r[0-9]+]] = ##g127; CHECK-DAG: [[FIRST_VALUE:r[0-9]+]] = memw(gp+#g0)28 29; CHECK: [[FAIL_LABEL:\.LBB.*]]:30 31; CHECK: [[LOCKED_READ_REG:r[0-9]+]] = memw_locked([[SECOND_ADDR]])32; CHECK: [[RESULT_REG:r[0-9]+]] = [[BINARY_OP]]([[LOCKED_READ_REG]],[[FIRST_VALUE]])33; CHECK: memw_locked([[SECOND_ADDR]],[[LOCK_PRED_REG:p[0-9]+]]) = [[RESULT_REG]]34 35; CHECK: if (![[LOCK_PRED_REG]]) jump{{.*}}[[FAIL_LABEL]]36; CHECK-DAG: memw(gp+#g2) = [[LOCKED_READ_REG]]37; CHECK-DAG: jumpr r3138define void @f0() {39BINARY_OP_entry:40  %v0 = load i32, ptr @g0, align 441  %v1 = atomicrmw BINARY_OP ptr @g1, i32 %v0 ORDER42  store i32 %v1, ptr @g2, align 443  ret void44}45 46; CHECK-LABEL: f1:47; CHECK-DAG: [[SECOND_ADDR:r[0-9]+]] = ##g448; CHECK-DAG: [[FIRST_VALUE:r[:0-9]+]] = memd(gp+#g3)49 50; CHECK: [[FAIL_LABEL:\.LBB.*]]:51 52; CHECK: [[LOCKED_READ_REG:r[:0-9]+]] = memd_locked([[SECOND_ADDR]])53; CHECK: [[RESULT_REG:r[:0-9]+]] = [[BINARY_OP]]([[LOCKED_READ_REG]],[[FIRST_VALUE]])54; CHECK: memd_locked([[SECOND_ADDR]],[[LOCK_PRED_REG:p[0-9]+]]) = [[RESULT_REG]]55 56; CHECK: if (![[LOCK_PRED_REG]]) jump{{.*}}[[FAIL_LABEL]]57; CHECK-DAG: memd(gp+#g5) = [[LOCKED_READ_REG]]58; CHECK-DAG: jumpr r3159define void @f1() {60b0:61  %v0 = load i64, ptr @g3, align 862  %v1 = atomicrmw BINARY_OP ptr @g4, i64 %v0 ORDER63  store i64 %v1, ptr @g5, align 864  ret void65}66