brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 5b705db Raw
104 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx90a --pass-remarks=atomic-expand \2; RUN:      %s -o - 2>&1 | FileCheck %s --check-prefix=GFX90A-CAS3 4; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at system memory scope5; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at agent memory scope6; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at workgroup memory scope7; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at wavefront memory scope8; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at singlethread memory scope9; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at one-as memory scope10; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at agent-one-as memory scope11; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at workgroup-one-as memory scope12; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at wavefront-one-as memory scope13; GFX90A-CAS: A compare and swap loop was generated for an atomic fadd operation at singlethread-one-as memory scope14 15; GFX90A-CAS-LABEL: atomic_add_cas:16; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc17; GFX90A-CAS: s_cbranch_execnz18define dso_local void @atomic_add_cas(ptr %p, float %q) {19entry:20  %ret = atomicrmw fadd ptr %p, float %q monotonic, align 421  ret void22}23 24; GFX90A-CAS-LABEL: atomic_add_cas_agent:25; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc26; GFX90A-CAS: s_cbranch_execnz27define dso_local void @atomic_add_cas_agent(ptr %p, float %q) {28entry:29  %ret = atomicrmw fadd ptr %p, float %q syncscope("agent") monotonic, align 430  ret void31}32 33; GFX90A-CAS-LABEL: atomic_add_cas_workgroup:34; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc35; GFX90A-CAS: s_cbranch_execnz36define dso_local void @atomic_add_cas_workgroup(ptr %p, float %q) {37entry:38  %ret = atomicrmw fadd ptr %p, float %q syncscope("workgroup") monotonic, align 439  ret void40}41 42; GFX90A-CAS-LABEL: atomic_add_cas_wavefront:43; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc44; GFX90A-CAS: s_cbranch_execnz45define dso_local void @atomic_add_cas_wavefront(ptr %p, float %q) {46entry:47  %ret = atomicrmw fadd ptr %p, float %q syncscope("wavefront") monotonic, align 448  ret void49}50 51; GFX90A-CAS-LABEL: atomic_add_cas_singlethread:52; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc53; GFX90A-CAS: s_cbranch_execnz54define dso_local void @atomic_add_cas_singlethread(ptr %p, float %q) {55entry:56  %ret = atomicrmw fadd ptr %p, float %q syncscope("singlethread") monotonic, align 457  ret void58}59 60; GFX90A-CAS-LABEL: atomic_add_cas_one_as:61; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc62; GFX90A-CAS: s_cbranch_execnz63define dso_local void @atomic_add_cas_one_as(ptr %p, float %q) {64entry:65  %ret = atomicrmw fadd ptr %p, float %q syncscope("one-as") monotonic, align 466  ret void67}68 69; GFX90A-CAS-LABEL: atomic_add_cas_agent_one_as:70; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc71; GFX90A-CAS: s_cbranch_execnz72define dso_local void @atomic_add_cas_agent_one_as(ptr %p, float %q) {73entry:74  %ret = atomicrmw fadd ptr %p, float %q syncscope("agent-one-as") monotonic, align 475  ret void76}77 78; GFX90A-CAS-LABEL: atomic_add_cas_workgroup_one_as:79; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc80; GFX90A-CAS: s_cbranch_execnz81define dso_local void @atomic_add_cas_workgroup_one_as(ptr %p, float %q) {82entry:83  %ret = atomicrmw fadd ptr %p, float %q syncscope("workgroup-one-as") monotonic, align 484  ret void85}86 87; GFX90A-CAS-LABEL: atomic_add_cas_wavefront_one_as:88; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc89; GFX90A-CAS: s_cbranch_execnz90define dso_local void @atomic_add_cas_wavefront_one_as(ptr %p, float %q) {91entry:92  %ret = atomicrmw fadd ptr %p, float %q syncscope("wavefront-one-as") monotonic, align 493  ret void94}95 96; GFX90A-CAS-LABEL: atomic_add_cas_singlethread_one_as:97; GFX90A-CAS: flat_atomic_cmpswap v3, v[0:1], v[4:5] glc98; GFX90A-CAS: s_cbranch_execnz99define dso_local void @atomic_add_cas_singlethread_one_as(ptr %p, float %q) {100entry:101  %ret = atomicrmw fadd ptr %p, float %q syncscope("singlethread-one-as") monotonic, align 4102  ret void103}104