
Similar to 806761a7629df268c8aed49657aeccffa6bca449 -mtriple= specifies the full target triple while -march= merely sets the architecture part of the default target triple (e.g. Windows, macOS), leaving a target triple which may not make sense. Therefore, -march= is error-prone and not recommended for tests without a target triple. The issue has been benign as we recognize bpf*-apple-darwin as ELF instead of rejecting it outrightly.
25 lines
882 B
LLVM
25 lines
882 B
LLVM
; RUN: llc < %s -mtriple=bpfel -verify-machineinstrs -show-mc-encoding -mcpu=v1 | FileCheck %s
|
|
; RUN: llc < %s -mtriple=bpfel -verify-machineinstrs -show-mc-encoding -mcpu=v3 | FileCheck --check-prefix=CHECK-V3 %s
|
|
|
|
; CHECK-LABEL: test_load_add_32
|
|
; CHECK: lock *(u32 *)(r1 + 0) += r2
|
|
; CHECK: encoding: [0xc3,0x21
|
|
; CHECK-V3: w2 = atomic_fetch_add((u32 *)(r1 + 0), w2)
|
|
; CHECK-V3: encoding: [0xc3,0x21,0x00,0x00,0x01,0x00,0x00,0x00]
|
|
define void @test_load_add_32(ptr %p, i32 zeroext %v) {
|
|
entry:
|
|
atomicrmw add ptr %p, i32 %v seq_cst
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: test_load_add_64
|
|
; CHECK: lock *(u64 *)(r1 + 0) += r2
|
|
; CHECK: encoding: [0xdb,0x21
|
|
; CHECK-V3: r2 = atomic_fetch_add((u64 *)(r1 + 0), r2)
|
|
; CHECK-V3: encoding: [0xdb,0x21,0x00,0x00,0x01,0x00,0x00,0x00]
|
|
define void @test_load_add_64(ptr %p, i64 zeroext %v) {
|
|
entry:
|
|
atomicrmw add ptr %p, i64 %v seq_cst
|
|
ret void
|
|
}
|