;;; TOOL: run-roundtrip
;;; ARGS: --stdout --fold-exprs
(module
  (memory 1)

  ;; store_lane consumes the address and the vector and pushes nothing, so the
  ;; f32 below it is what f32.neg consumes; the store must not be folded into
  ;; f32.neg as if it produced a value.
  (func (param i32 v128 f32) (result f32)
    local.get 2
    local.get 0
    local.get 1
    v128.store8_lane 0
    f32.neg)

  (func (param i32 v128)
    local.get 0
    local.get 1
    v128.store16_lane offset=4 1)
)
(;; STDOUT ;;;
(module
  (type (;0;) (func (param i32 v128 f32) (result f32)))
  (type (;1;) (func (param i32 v128)))
  (func (;0;) (type 0) (param i32 v128 f32) (result f32)
    (local.get 2)
    (v128.store8_lane 0
      (local.get 0)
      (local.get 1))
    (f32.neg))
  (func (;1;) (type 1) (param i32 v128)
    (v128.store16_lane offset=4 1
      (local.get 0)
      (local.get 1)))
  (memory (;0;) 1))
;;; STDOUT ;;)
