xref: /llvm-project/llvm/test/CodeGen/AVR/atomics/load64.ll (revision 9ef1d37ffb5f56a9b949a6307bbb16c2ea0130e3)
1; RUN: llc -mattr=avr6 < %s -mtriple=avr | FileCheck %s
2
3; CHECK-LABEL: atomic_load64
4; CHECK: call __sync_val_compare_and_swap_8
5define i64 @atomic_load64(ptr %foo) {
6  %val = load atomic i64, ptr %foo unordered, align 8
7  ret i64 %val
8}
9
10; CHECK-LABEL: atomic_load_sub64
11; CHECK: call __sync_fetch_and_sub_8
12define i64 @atomic_load_sub64(ptr %foo) {
13  %val = atomicrmw sub ptr %foo, i64 13 seq_cst
14  ret i64 %val
15}
16
17