# RUN: llc -mtriple=wasm32-unknown-unknown -run-pass wasm-reg-stackify -run-pass wasm-explicit-locals %s -o - | FileCheck %s

# In the two tests below, without compiler_fence or atomic.fence in between,
# atomic.notify and i32.add will be reordered by register stackify pass to meet
# 'call @foo''s requirements. But because we have fences between atomic.notify
# and i32.add, they cannot be reordered, and local.set and local.get are
# inserted to save and load atomic.notify's return value.

--- |
  target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
  target triple = "wasm32-unknown-unknown"

  declare void @foo(i32, i32)
  define void @compiler_fence_test(i32) {
    ret void
  }
  define void @atomic_fence_test(i32) {
    ret void
  }
...
---
# CHECK-LABEL: name: compiler_fence_test
name: compiler_fence_test
liveins:
  - { reg: '$arguments' }
tracksRegLiveness: true
body: |
  bb.0:
    ; CHECK: %[[REG:[0-9]+]]:i32 = ATOMIC_NOTIFY
    ; CHECK: LOCAL_SET_I32 [[LOCAL:[0-9]+]], %[[REG]]
    ; CHECK: COMPILER_FENCE
    ; CHECK: ADD_I32
    ; CHECK: LOCAL_GET_I32 [[LOCAL]]
    ; CHECK: CALL_VOID @foo

    liveins: $arguments
    %0:i32 = CONST_I32 0, implicit-def $arguments
    %1:i32 = ATOMIC_NOTIFY 2, 0, %0:i32, %0:i32, implicit-def $arguments
    COMPILER_FENCE implicit-def $arguments
    %2:i32 = ADD_I32 %0:i32, %0:i32, implicit-def $arguments
    CALL_VOID @foo, %2:i32, %1:i32, implicit-def $arguments
    RETURN implicit-def $arguments
...

---
# CHECK-LABEL: name: atomic_fence_test
name: atomic_fence_test
liveins:
  - { reg: '$arguments' }
tracksRegLiveness: true
body: |
  bb.0:
    ; CHECK: %[[REG:[0-9]+]]:i32 = ATOMIC_NOTIFY
    ; CHECK: LOCAL_SET_I32 [[LOCAL:[0-9]+]], %[[REG]]
    ; CHECK: ATOMIC_FENCE
    ; CHECK: ADD_I32
    ; CHECK: LOCAL_GET_I32 [[LOCAL]]
    ; CHECK: CALL_VOID @foo

    liveins: $arguments
    %0:i32 = CONST_I32 0, implicit-def $arguments
    %1:i32 = ATOMIC_NOTIFY 2, 0, %0:i32, %0:i32, implicit-def $arguments
    ATOMIC_FENCE 0, implicit-def $arguments
    %2:i32 = ADD_I32 %0:i32, %0:i32, implicit-def $arguments
    CALL_VOID @foo, %2:i32, %1:i32, implicit-def $arguments
    RETURN implicit-def $arguments
...
