xref: /llvm-project/llvm/test/CodeGen/BPF/atomics.ll (revision c5037db4acd95790a0ca5061c8fa79c5c291607e)
1; RUN: llc < %s -mtriple=bpfel -verify-machineinstrs -show-mc-encoding -mcpu=v1 | FileCheck %s
2; RUN: llc < %s -mtriple=bpfel -verify-machineinstrs -show-mc-encoding -mcpu=v3 | FileCheck --check-prefix=CHECK-V3 %s
3
4; CHECK-LABEL: test_load_add_32
5; CHECK: lock *(u32 *)(r1 + 0) += r2
6; CHECK: encoding: [0xc3,0x21
7; CHECK-V3: w2 = atomic_fetch_add((u32 *)(r1 + 0), w2)
8; CHECK-V3: encoding: [0xc3,0x21,0x00,0x00,0x01,0x00,0x00,0x00]
9define void @test_load_add_32(ptr %p, i32 zeroext %v) {
10entry:
11  atomicrmw add ptr %p, i32 %v seq_cst
12  ret void
13}
14
15; CHECK-LABEL: test_load_add_64
16; CHECK: lock *(u64 *)(r1 + 0) += r2
17; CHECK: encoding: [0xdb,0x21
18; CHECK-V3: r2 = atomic_fetch_add((u64 *)(r1 + 0), r2)
19; CHECK-V3: encoding: [0xdb,0x21,0x00,0x00,0x01,0x00,0x00,0x00]
20define void @test_load_add_64(ptr %p, i64 zeroext %v) {
21entry:
22  atomicrmw add ptr %p, i64 %v seq_cst
23  ret void
24}
25