blob: dd0d912932ce8c5854e2641f3b2f69b1e68a4b38 [file] [log] [blame]
; RUN: llc -march=amdgcn -mcpu=gfx906 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX906-ASM %s
; RUN: llc -march=amdgcn -mcpu=gfx908 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX908-ASM %s
; RUN: llc -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A-ASM %s
; RUN: llc -march=amdgcn -mcpu=gfx940 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX940-ASM %s
; RUN: llc -march=amdgcn -mcpu=gfx1030 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX1030-ASM %s
; RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX1100-ASM %s
; GFX906-ASM-LABEL: fadd_test:
; GFX906-ASM-NOT: global_atomic_add_f32
; GFX906-ASM: v_illegal
; GFX908-ASM-LABEL: fadd_test:
; GFX908-ASM-NOT: v_illegal
; GFX908-ASM: global_atomic_add_f32
; GFX90A-ASM-LABEL: fadd_test:
; GFX90A-ASM-NOT: v_illegal
; GFX90A-ASM: global_atomic_add_f32
; GFX940-ASM-LABEL: fadd_test:
; GFX940-ASM-NOT: v_illegal
; GFX940-ASM: global_atomic_add_f32
; GFX1030-ASM-LABEL: fadd_test:
; GFX1030-ASM-NOT: global_atomic_add_f32
; GFX1030-ASM: v_illegal
; GFX1100-ASM-LABEL: fadd_test:
; GFX1100-ASM-NOT: v_illegal
; GFX1100-ASM: global_atomic_add_f32
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx906 -d - | FileCheck --check-prefix=GFX906-OBJ %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx908 -d - | FileCheck --check-prefix=GFX908-OBJ %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx90a -d - | FileCheck --check-prefix=GFX90A-OBJ %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx940 -d - | FileCheck --check-prefix=GFX940-OBJ %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx1030 -d - | FileCheck --check-prefix=GFX1030-OBJ %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -filetype=obj -verify-machineinstrs < %s | llvm-objdump --triple=amdgcn--amdhsa --mcpu=gfx1100 -d - | FileCheck --check-prefix=GFX1100-OBJ %s
; GFX906-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX906-OBJ-NEXT: v_illegal // 000000000004: FFFFFFFF
; GFX908-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX908-OBJ-NEXT: global_atomic_add_f32
; GFX90A-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX90A-OBJ-NEXT: global_atomic_add_f32
; GFX940-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX940-OBJ-NEXT: global_atomic_add_f32
; GFX1030-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX1030-OBJ-NEXT: s_waitcnt_vscnt null, 0x0
; GFX1030-OBJ-NEXT: v_illegal // 000000000008: 00000000
; GFX1100-OBJ: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX1100-OBJ-NEXT: s_waitcnt_vscnt null, 0x0
; GFX1100-OBJ-NEXT: global_atomic_add_f32 v[0:1], v2, off
define fastcc void @fadd_test(float addrspace(1)* nocapture noundef %0, float noundef %1) unnamed_addr {
%3 = tail call float @llvm.amdgcn.global.atomic.fadd.f32.p1f32.f32(float addrspace(1)* noundef %0, float noundef %1)
ret void
}
declare float @llvm.amdgcn.global.atomic.fadd.f32.p1f32.f32(float addrspace(1)* nocapture, float)