;;! target = "x86_64" ;;! test = "compile" ;;! flags = "-C cranelift-has-bmi1" (module ;; this should get optimized to a `bnot` in clif (func (param i32) (result i32) i32.const -1 local.get 0 i32.xor) ;; this should get optimized to a single `andn` instruction (func (param i32 i32) (result i32) local.get 0 i32.const -1 local.get 1 i32.xor i32.and) ) ;; wasm[0]::function[0]: ;; pushq %rbp ;; movq %rsp, %rbp ;; movq %rdx, %rax ;; notl %eax ;; movq %rbp, %rsp ;; popq %rbp ;; retq ;; ;; wasm[0]::function[1]: ;; pushq %rbp ;; movq %rsp, %rbp ;; andnl %edx, %ecx, %eax ;; movq %rbp, %rsp ;; popq %rbp ;; retq