[WebAssembly] Make expression-stack pushing explicit
authorDan Gohman <dan433584@gmail.com>
Fri, 6 Nov 2015 19:45:01 +0000 (19:45 +0000)
committerDan Gohman <dan433584@gmail.com>
Fri, 6 Nov 2015 19:45:01 +0000 (19:45 +0000)
Modelling of the expression stack is evolving. This patch takes another
step by making pushes explicit.

Differential Revision: http://reviews.llvm.org/D14338

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252334 91177308-0d34-0410-b5e6-96231b3b80d8

16 files changed:
lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
test/CodeGen/WebAssembly/call.ll
test/CodeGen/WebAssembly/comparisons_f32.ll
test/CodeGen/WebAssembly/comparisons_f64.ll
test/CodeGen/WebAssembly/comparisons_i32.ll
test/CodeGen/WebAssembly/comparisons_i64.ll
test/CodeGen/WebAssembly/conv.ll
test/CodeGen/WebAssembly/f32.ll
test/CodeGen/WebAssembly/f64.ll
test/CodeGen/WebAssembly/i32.ll
test/CodeGen/WebAssembly/i64.ll
test/CodeGen/WebAssembly/load-ext.ll
test/CodeGen/WebAssembly/load-store-i1.ll
test/CodeGen/WebAssembly/load.ll
test/CodeGen/WebAssembly/phi.ll
test/CodeGen/WebAssembly/select.ll

index 5a6f435..7034892 100644 (file)
@@ -269,33 +269,39 @@ void WebAssemblyAsmPrinter::EmitInstruction(const MachineInstr *MI) {
 
   switch (MI->getOpcode()) {
   case TargetOpcode::COPY:
-    OS << "get_local " << regToString(MI->getOperand(1));
+    OS << "get_local push, " << regToString(MI->getOperand(1));
     break;
   case WebAssembly::GLOBAL:
     // TODO: wasm64
-    OS << "i32.const " << toSymbol(MI->getOperand(1).getGlobal()->getName());
+    OS << "i32.const push, " << toSymbol(MI->getOperand(1).getGlobal()->getName());
     break;
   case WebAssembly::ARGUMENT_I32:
   case WebAssembly::ARGUMENT_I64:
   case WebAssembly::ARGUMENT_F32:
   case WebAssembly::ARGUMENT_F64:
-    OS << "get_local " << argToString(MI->getOperand(1));
+    OS << "get_local push, " << argToString(MI->getOperand(1));
     break;
   case WebAssembly::Const_I32:
-    OS << "i32.const " << MI->getOperand(1).getImm();
+    OS << "i32.const push, " << MI->getOperand(1).getImm();
     break;
   case WebAssembly::Const_I64:
-    OS << "i64.const " << MI->getOperand(1).getImm();
+    OS << "i64.const push, " << MI->getOperand(1).getImm();
     break;
   case WebAssembly::Const_F32:
-    OS << "f32.const " << toString(MI->getOperand(1).getFPImm()->getValueAPF());
+    OS << "f32.const push, " << toString(MI->getOperand(1).getFPImm()->getValueAPF());
     break;
   case WebAssembly::Const_F64:
-    OS << "f64.const " << toString(MI->getOperand(1).getFPImm()->getValueAPF());
+    OS << "f64.const push, " << toString(MI->getOperand(1).getFPImm()->getValueAPF());
     break;
   default: {
     OS << OpcodeName(TII, MI);
     bool NeedComma = false;
+    bool DefsPushed = false;
+    if (NumDefs != 0 && !MI->isCall()) {
+      OS << " push";
+      NeedComma = true;
+      DefsPushed = true;
+    }
     for (const MachineOperand &MO : MI->uses()) {
       if (MO.isReg() && MO.isImplicit())
         continue;
@@ -322,6 +328,12 @@ void WebAssemblyAsmPrinter::EmitInstruction(const MachineInstr *MI) {
         OS << toSymbol(MO.getMBB()->getSymbol()->getName());
         break;
       }
+      if (NumDefs != 0 && !DefsPushed) {
+        // Special-case for calls; print the push after the callee.
+        assert(MI->isCall());
+        OS << ", push";
+        DefsPushed = true;
+      }
     }
     break;
   }
index 8cd5371..560d93e 100644 (file)
@@ -16,7 +16,7 @@ declare void @void_nullary()
 ; CHECK-LABEL: call_i32_nullary:
 ; CHECK-NEXT: .result i32
 ; CHECK-NEXT: .local i32
-; CHECK-NEXT: call $i32_nullary
+; CHECK-NEXT: call $i32_nullary, push{{$}}
 ; CHECK-NEXT: set_local 0, pop
 ; CHECK-NEXT: return (get_local 0)
 define i32 @call_i32_nullary() {
@@ -27,7 +27,7 @@ define i32 @call_i32_nullary() {
 ; CHECK-LABEL: call_i64_nullary:
 ; CHECK-NEXT: .result i64
 ; CHECK-NEXT: .local i64
-; CHECK-NEXT: call $i64_nullary
+; CHECK-NEXT: call $i64_nullary, push{{$}}
 ; CHECK-NEXT: set_local 0, pop
 ; CHECK-NEXT: return (get_local 0)
 define i64 @call_i64_nullary() {
@@ -38,7 +38,7 @@ define i64 @call_i64_nullary() {
 ; CHECK-LABEL: call_float_nullary:
 ; CHECK-NEXT: .result f32
 ; CHECK-NEXT: .local f32
-; CHECK-NEXT: call $float_nullary
+; CHECK-NEXT: call $float_nullary, push{{$}}
 ; CHECK-NEXT: set_local 0, pop
 ; CHECK-NEXT: return (get_local 0)
 define float @call_float_nullary() {
@@ -49,7 +49,7 @@ define float @call_float_nullary() {
 ; CHECK-LABEL: call_double_nullary:
 ; CHECK-NEXT: .result f64
 ; CHECK-NEXT: .local f64
-; CHECK-NEXT: call $double_nullary
+; CHECK-NEXT: call $double_nullary, push{{$}}
 ; CHECK-NEXT: set_local 0, pop
 ; CHECK-NEXT: return (get_local 0)
 define double @call_double_nullary() {
@@ -58,7 +58,7 @@ define double @call_double_nullary() {
 }
 
 ; CHECK-LABEL: call_void_nullary:
-; CHECK-NEXT: call $void_nullary
+; CHECK-NEXT: call $void_nullary{{$}}
 ; CHECK-NEXT: return
 define void @call_void_nullary() {
   call void @void_nullary()
@@ -71,7 +71,7 @@ define void @call_void_nullary() {
 ; CHECK-NEXT: .local i32, i32
 ; CHECK-NEXT: get_local 0
 ; CHECK-NEXT: set_local 1, pop
-; CHECK-NEXT: call $i32_unary, (get_local 1)
+; CHECK-NEXT: call $i32_unary, push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop
 ; CHECK-NEXT: return (get_local 2)
 define i32 @call_i32_unary(i32 %a) {
@@ -88,7 +88,7 @@ define i32 @call_i32_unary(i32 %a) {
 ; CHECK-NEXT: set_local 2, pop
 ; CHECK-NEXT: get_local 0
 ; CHECK-NEXT: set_local 3, pop
-; CHECK-NEXT: call $i32_binary, (get_local 3), (get_local 2)
+; CHECK-NEXT: call $i32_binary, push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop
 ; CHECK-NEXT: return (get_local 4)
 define i32 @call_i32_binary(i32 %a, i32 %b) {
@@ -101,7 +101,7 @@ define i32 @call_i32_binary(i32 %a, i32 %b) {
 ; CHECK-NEXT: .local i32
 ; CHECK-NEXT: get_local 0
 ; CHECK-NEXT: set_local 1, pop
-; CHECK-NEXT: call_indirect (get_local 1)
+; CHECK-NEXT: call_indirect (get_local 1){{$}}
 ; CHECK-NEXT: return
 define void @call_indirect_void(void ()* %callee) {
   call void %callee()
@@ -114,7 +114,7 @@ define void @call_indirect_void(void ()* %callee) {
 ; CHECK-NEXT: .local i32, i32
 ; CHECK-NEXT: get_local 0
 ; CHECK-NEXT: set_local 1, pop
-; CHECK-NEXT: call_indirect (get_local 1)
+; CHECK-NEXT: call_indirect (get_local 1), push{{$}}
 ; CHECK-NEXT: set_local 2, pop
 ; CHECK-NEXT: return (get_local 2)
 define i32 @call_indirect_i32(i32 ()* %callee) {
@@ -123,7 +123,7 @@ define i32 @call_indirect_i32(i32 ()* %callee) {
 }
 
 ; CHECK-LABEL: tail_call_void_nullary:
-; CHECK-NEXT: call $void_nullary
+; CHECK-NEXT: call $void_nullary{{$}}
 ; CHECK-NEXT: return{{$}}
 define void @tail_call_void_nullary() {
   tail call void @void_nullary()
@@ -131,7 +131,7 @@ define void @tail_call_void_nullary() {
 }
 
 ; CHECK-LABEL: fastcc_tail_call_void_nullary:
-; CHECK-NEXT: call $void_nullary
+; CHECK-NEXT: call $void_nullary{{$}}
 ; CHECK-NEXT: return{{$}}
 define void @fastcc_tail_call_void_nullary() {
   tail call fastcc void @void_nullary()
index c700b05..09e5b9a 100644 (file)
@@ -15,11 +15,11 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 1{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: eq (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: and (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: and push, (get_local 5), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
 ; CHECK-NEXT: return (get_local 6){{$}}
 define i32 @ord_f32(float %x, float %y) {
@@ -37,11 +37,11 @@ define i32 @ord_f32(float %x, float %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 1{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: ne (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: or (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: or push, (get_local 5), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
 ; CHECK-NEXT: return (get_local 6){{$}}
 define i32 @uno_f32(float %x, float %y) {
@@ -59,7 +59,7 @@ define i32 @uno_f32(float %x, float %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @oeq_f32(float %x, float %y) {
@@ -69,7 +69,7 @@ define i32 @oeq_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: une_f32:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @une_f32(float %x, float %y) {
   %a = fcmp une float %x, %y
@@ -78,7 +78,7 @@ define i32 @une_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: olt_f32:
-; CHECK: lt (get_local 3), (get_local 2){{$}}
+; CHECK: lt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @olt_f32(float %x, float %y) {
   %a = fcmp olt float %x, %y
@@ -87,7 +87,7 @@ define i32 @olt_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: ole_f32:
-; CHECK: le (get_local 3), (get_local 2){{$}}
+; CHECK: le push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ole_f32(float %x, float %y) {
   %a = fcmp ole float %x, %y
@@ -96,7 +96,7 @@ define i32 @ole_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: ogt_f32:
-; CHECK: gt (get_local 3), (get_local 2){{$}}
+; CHECK: gt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ogt_f32(float %x, float %y) {
   %a = fcmp ogt float %x, %y
@@ -105,7 +105,7 @@ define i32 @ogt_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: oge_f32:
-; CHECK: ge (get_local 3), (get_local 2){{$}}
+; CHECK: ge push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @oge_f32(float %x, float %y) {
   %a = fcmp oge float %x, %y
@@ -124,15 +124,15 @@ define i32 @oge_f32(float %x, float %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: ne (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
-; CHECK-NEXT: or (get_local 6), (get_local 5){{$}}
+; CHECK-NEXT: or push, (get_local 6), (get_local 5){{$}}
 ; CHECK-NEXT: set_local 7, pop{{$}}
-; CHECK-NEXT: or (get_local 4), (get_local 7){{$}}
+; CHECK-NEXT: or push, (get_local 4), (get_local 7){{$}}
 ; CHECK-NEXT: set_local 8, pop{{$}}
 ; CHECK-NEXT: return (get_local 8){{$}}
 define i32 @ueq_f32(float %x, float %y) {
@@ -142,7 +142,7 @@ define i32 @ueq_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: one_f32:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @one_f32(float %x, float %y) {
   %a = fcmp one float %x, %y
@@ -151,7 +151,7 @@ define i32 @one_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: ult_f32:
-; CHECK: lt (get_local 3), (get_local 2){{$}}
+; CHECK: lt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ult_f32(float %x, float %y) {
   %a = fcmp ult float %x, %y
@@ -160,7 +160,7 @@ define i32 @ult_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: ule_f32:
-; CHECK: le (get_local 3), (get_local 2){{$}}
+; CHECK: le push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ule_f32(float %x, float %y) {
   %a = fcmp ule float %x, %y
@@ -169,7 +169,7 @@ define i32 @ule_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: ugt_f32:
-; CHECK: gt (get_local 3), (get_local 2){{$}}
+; CHECK: gt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ugt_f32(float %x, float %y) {
   %a = fcmp ugt float %x, %y
@@ -178,7 +178,7 @@ define i32 @ugt_f32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: uge_f32:
-; CHECK: ge (get_local 3), (get_local 2){{$}}
+; CHECK: ge push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @uge_f32(float %x, float %y) {
   %a = fcmp uge float %x, %y
index ae0236b..b2e2d05 100644 (file)
@@ -15,11 +15,11 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 1{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: eq (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: and (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: and push, (get_local 5), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
 ; CHECK-NEXT: return (get_local 6){{$}}
 define i32 @ord_f64(double %x, double %y) {
@@ -37,11 +37,11 @@ define i32 @ord_f64(double %x, double %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 1{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: ne (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: or (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: or push, (get_local 5), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
 ; CHECK-NEXT: return (get_local 6){{$}}
 define i32 @uno_f64(double %x, double %y) {
@@ -59,7 +59,7 @@ define i32 @uno_f64(double %x, double %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @oeq_f64(double %x, double %y) {
@@ -69,7 +69,7 @@ define i32 @oeq_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: une_f64:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @une_f64(double %x, double %y) {
   %a = fcmp une double %x, %y
@@ -78,7 +78,7 @@ define i32 @une_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: olt_f64:
-; CHECK: lt (get_local 3), (get_local 2){{$}}
+; CHECK: lt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @olt_f64(double %x, double %y) {
   %a = fcmp olt double %x, %y
@@ -87,7 +87,7 @@ define i32 @olt_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: ole_f64:
-; CHECK: le (get_local 3), (get_local 2){{$}}
+; CHECK: le push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ole_f64(double %x, double %y) {
   %a = fcmp ole double %x, %y
@@ -96,7 +96,7 @@ define i32 @ole_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: ogt_f64:
-; CHECK: gt (get_local 3), (get_local 2){{$}}
+; CHECK: gt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ogt_f64(double %x, double %y) {
   %a = fcmp ogt double %x, %y
@@ -105,7 +105,7 @@ define i32 @ogt_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: oge_f64:
-; CHECK: ge (get_local 3), (get_local 2){{$}}
+; CHECK: ge push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @oge_f64(double %x, double %y) {
   %a = fcmp oge double %x, %y
@@ -124,15 +124,15 @@ define i32 @oge_f64(double %x, double %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: ne (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 6, pop{{$}}
-; CHECK-NEXT: or (get_local 6), (get_local 5){{$}}
+; CHECK-NEXT: or push, (get_local 6), (get_local 5){{$}}
 ; CHECK-NEXT: set_local 7, pop{{$}}
-; CHECK-NEXT: or (get_local 4), (get_local 7){{$}}
+; CHECK-NEXT: or push, (get_local 4), (get_local 7){{$}}
 ; CHECK-NEXT: set_local 8, pop{{$}}
 ; CHECK-NEXT: return (get_local 8){{$}}
 define i32 @ueq_f64(double %x, double %y) {
@@ -142,7 +142,7 @@ define i32 @ueq_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: one_f64:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @one_f64(double %x, double %y) {
   %a = fcmp one double %x, %y
@@ -151,7 +151,7 @@ define i32 @one_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: ult_f64:
-; CHECK: lt (get_local 3), (get_local 2){{$}}
+; CHECK: lt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ult_f64(double %x, double %y) {
   %a = fcmp ult double %x, %y
@@ -160,7 +160,7 @@ define i32 @ult_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: ule_f64:
-; CHECK: le (get_local 3), (get_local 2){{$}}
+; CHECK: le push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ule_f64(double %x, double %y) {
   %a = fcmp ule double %x, %y
@@ -169,7 +169,7 @@ define i32 @ule_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: ugt_f64:
-; CHECK: gt (get_local 3), (get_local 2){{$}}
+; CHECK: gt push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ugt_f64(double %x, double %y) {
   %a = fcmp ugt double %x, %y
@@ -178,7 +178,7 @@ define i32 @ugt_f64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: uge_f64:
-; CHECK: ge (get_local 3), (get_local 2){{$}}
+; CHECK: ge push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @uge_f64(double %x, double %y) {
   %a = fcmp uge double %x, %y
index c47bcdf..1cf43de 100644 (file)
@@ -14,7 +14,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @eq_i32(i32 %x, i32 %y) {
@@ -24,7 +24,7 @@ define i32 @eq_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: ne_i32:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ne_i32(i32 %x, i32 %y) {
   %a = icmp ne i32 %x, %y
@@ -33,7 +33,7 @@ define i32 @ne_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: slt_i32:
-; CHECK: i32.lt_s (get_local 3), (get_local 2){{$}}
+; CHECK: i32.lt_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @slt_i32(i32 %x, i32 %y) {
   %a = icmp slt i32 %x, %y
@@ -42,7 +42,7 @@ define i32 @slt_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: sle_i32:
-; CHECK: i32.le_s (get_local 3), (get_local 2){{$}}
+; CHECK: i32.le_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sle_i32(i32 %x, i32 %y) {
   %a = icmp sle i32 %x, %y
@@ -51,7 +51,7 @@ define i32 @sle_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: ult_i32:
-; CHECK: i32.lt_u (get_local 3), (get_local 2){{$}}
+; CHECK: i32.lt_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ult_i32(i32 %x, i32 %y) {
   %a = icmp ult i32 %x, %y
@@ -60,7 +60,7 @@ define i32 @ult_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: ule_i32:
-; CHECK: i32.le_u (get_local 3), (get_local 2){{$}}
+; CHECK: i32.le_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ule_i32(i32 %x, i32 %y) {
   %a = icmp ule i32 %x, %y
@@ -69,7 +69,7 @@ define i32 @ule_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: sgt_i32:
-; CHECK: i32.gt_s (get_local 3), (get_local 2){{$}}
+; CHECK: i32.gt_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sgt_i32(i32 %x, i32 %y) {
   %a = icmp sgt i32 %x, %y
@@ -78,7 +78,7 @@ define i32 @sgt_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: sge_i32:
-; CHECK: i32.ge_s (get_local 3), (get_local 2){{$}}
+; CHECK: i32.ge_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sge_i32(i32 %x, i32 %y) {
   %a = icmp sge i32 %x, %y
@@ -87,7 +87,7 @@ define i32 @sge_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: ugt_i32:
-; CHECK: i32.gt_u (get_local 3), (get_local 2){{$}}
+; CHECK: i32.gt_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ugt_i32(i32 %x, i32 %y) {
   %a = icmp ugt i32 %x, %y
@@ -96,7 +96,7 @@ define i32 @ugt_i32(i32 %x, i32 %y) {
 }
 
 ; CHECK-LABEL: uge_i32:
-; CHECK: i32.ge_u (get_local 3), (get_local 2){{$}}
+; CHECK: i32.ge_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @uge_i32(i32 %x, i32 %y) {
   %a = icmp uge i32 %x, %y
index d8d9a29..871794e 100644 (file)
@@ -14,7 +14,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @eq_i64(i64 %x, i64 %y) {
@@ -24,7 +24,7 @@ define i32 @eq_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: ne_i64:
-; CHECK: ne (get_local 3), (get_local 2){{$}}
+; CHECK: ne push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ne_i64(i64 %x, i64 %y) {
   %a = icmp ne i64 %x, %y
@@ -33,7 +33,7 @@ define i32 @ne_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: slt_i64:
-; CHECK: i64.lt_s (get_local 3), (get_local 2){{$}}
+; CHECK: i64.lt_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @slt_i64(i64 %x, i64 %y) {
   %a = icmp slt i64 %x, %y
@@ -42,7 +42,7 @@ define i32 @slt_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: sle_i64:
-; CHECK: i64.le_s (get_local 3), (get_local 2){{$}}
+; CHECK: i64.le_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sle_i64(i64 %x, i64 %y) {
   %a = icmp sle i64 %x, %y
@@ -51,7 +51,7 @@ define i32 @sle_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: ult_i64:
-; CHECK: i64.lt_u (get_local 3), (get_local 2){{$}}
+; CHECK: i64.lt_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ult_i64(i64 %x, i64 %y) {
   %a = icmp ult i64 %x, %y
@@ -60,7 +60,7 @@ define i32 @ult_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: ule_i64:
-; CHECK: i64.le_u (get_local 3), (get_local 2){{$}}
+; CHECK: i64.le_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ule_i64(i64 %x, i64 %y) {
   %a = icmp ule i64 %x, %y
@@ -69,7 +69,7 @@ define i32 @ule_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: sgt_i64:
-; CHECK: i64.gt_s (get_local 3), (get_local 2){{$}}
+; CHECK: i64.gt_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sgt_i64(i64 %x, i64 %y) {
   %a = icmp sgt i64 %x, %y
@@ -78,7 +78,7 @@ define i32 @sgt_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: sge_i64:
-; CHECK: i64.ge_s (get_local 3), (get_local 2){{$}}
+; CHECK: i64.ge_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @sge_i64(i64 %x, i64 %y) {
   %a = icmp sge i64 %x, %y
@@ -87,7 +87,7 @@ define i32 @sge_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: ugt_i64:
-; CHECK: i64.gt_u (get_local 3), (get_local 2){{$}}
+; CHECK: i64.gt_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @ugt_i64(i64 %x, i64 %y) {
   %a = icmp ugt i64 %x, %y
@@ -96,7 +96,7 @@ define i32 @ugt_i64(i64 %x, i64 %y) {
 }
 
 ; CHECK-LABEL: uge_i64:
-; CHECK: i64.ge_u (get_local 3), (get_local 2){{$}}
+; CHECK: i64.ge_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define i32 @uge_i64(i64 %x, i64 %y) {
   %a = icmp uge i64 %x, %y
index b719f8f..0ef02ea 100644 (file)
@@ -11,7 +11,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: .local i64, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.wrap/i64 (get_local 1){{$}}
+; CHECK-NEXT: i32.wrap/i64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @i32_wrap_i64(i64 %x) {
@@ -25,7 +25,7 @@ define i32 @i32_wrap_i64(i64 %x) {
 ; CHECK-NEXT: .local i32, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.extend_s/i32 (get_local 1){{$}}
+; CHECK-NEXT: i64.extend_s/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_extend_s_i32(i32 %x) {
@@ -39,7 +39,7 @@ define i64 @i64_extend_s_i32(i32 %x) {
 ; CHECK-NEXT: .local i32, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.extend_u/i32 (get_local 1){{$}}
+; CHECK-NEXT: i64.extend_u/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_extend_u_i32(i32 %x) {
@@ -53,7 +53,7 @@ define i64 @i64_extend_u_i32(i32 %x) {
 ; CHECK-NEXT: .local f32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.trunc_s/f32 (get_local 1){{$}}
+; CHECK-NEXT: i32.trunc_s/f32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @i32_trunc_s_f32(float %x) {
@@ -67,7 +67,7 @@ define i32 @i32_trunc_s_f32(float %x) {
 ; CHECK-NEXT: .local f32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.trunc_u/f32 (get_local 1){{$}}
+; CHECK-NEXT: i32.trunc_u/f32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @i32_trunc_u_f32(float %x) {
@@ -81,7 +81,7 @@ define i32 @i32_trunc_u_f32(float %x) {
 ; CHECK-NEXT: .local f64, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.trunc_s/f64 (get_local 1){{$}}
+; CHECK-NEXT: i32.trunc_s/f64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @i32_trunc_s_f64(double %x) {
@@ -95,7 +95,7 @@ define i32 @i32_trunc_s_f64(double %x) {
 ; CHECK-NEXT: .local f64, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.trunc_u/f64 (get_local 1){{$}}
+; CHECK-NEXT: i32.trunc_u/f64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @i32_trunc_u_f64(double %x) {
@@ -109,7 +109,7 @@ define i32 @i32_trunc_u_f64(double %x) {
 ; CHECK-NEXT: .local f32, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.trunc_s/f32 (get_local 1){{$}}
+; CHECK-NEXT: i64.trunc_s/f32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_trunc_s_f32(float %x) {
@@ -123,7 +123,7 @@ define i64 @i64_trunc_s_f32(float %x) {
 ; CHECK-NEXT: .local f32, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.trunc_u/f32 (get_local 1){{$}}
+; CHECK-NEXT: i64.trunc_u/f32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_trunc_u_f32(float %x) {
@@ -137,7 +137,7 @@ define i64 @i64_trunc_u_f32(float %x) {
 ; CHECK-NEXT: .local f64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.trunc_s/f64 (get_local 1){{$}}
+; CHECK-NEXT: i64.trunc_s/f64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_trunc_s_f64(double %x) {
@@ -151,7 +151,7 @@ define i64 @i64_trunc_s_f64(double %x) {
 ; CHECK-NEXT: .local f64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.trunc_u/f64 (get_local 1){{$}}
+; CHECK-NEXT: i64.trunc_u/f64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @i64_trunc_u_f64(double %x) {
@@ -165,7 +165,7 @@ define i64 @i64_trunc_u_f64(double %x) {
 ; CHECK-NEXT: .local i32, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.convert_s/i32 (get_local 1){{$}}
+; CHECK-NEXT: f32.convert_s/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @f32_convert_s_i32(i32 %x) {
@@ -179,7 +179,7 @@ define float @f32_convert_s_i32(i32 %x) {
 ; CHECK-NEXT: .local i32, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.convert_u/i32 (get_local 1){{$}}
+; CHECK-NEXT: f32.convert_u/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @f32_convert_u_i32(i32 %x) {
@@ -193,7 +193,7 @@ define float @f32_convert_u_i32(i32 %x) {
 ; CHECK-NEXT: .local i32, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.convert_s/i32 (get_local 1){{$}}
+; CHECK-NEXT: f64.convert_s/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @f64_convert_s_i32(i32 %x) {
@@ -207,7 +207,7 @@ define double @f64_convert_s_i32(i32 %x) {
 ; CHECK-NEXT: .local i32, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.convert_u/i32 (get_local 1){{$}}
+; CHECK-NEXT: f64.convert_u/i32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @f64_convert_u_i32(i32 %x) {
@@ -221,7 +221,7 @@ define double @f64_convert_u_i32(i32 %x) {
 ; CHECK-NEXT: .local i64, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.convert_s/i64 (get_local 1){{$}}
+; CHECK-NEXT: f32.convert_s/i64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @f32_convert_s_i64(i64 %x) {
@@ -235,7 +235,7 @@ define float @f32_convert_s_i64(i64 %x) {
 ; CHECK-NEXT: .local i64, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.convert_u/i64 (get_local 1){{$}}
+; CHECK-NEXT: f32.convert_u/i64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @f32_convert_u_i64(i64 %x) {
@@ -249,7 +249,7 @@ define float @f32_convert_u_i64(i64 %x) {
 ; CHECK-NEXT: .local i64, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.convert_s/i64 (get_local 1){{$}}
+; CHECK-NEXT: f64.convert_s/i64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @f64_convert_s_i64(i64 %x) {
@@ -263,7 +263,7 @@ define double @f64_convert_s_i64(i64 %x) {
 ; CHECK-NEXT: .local i64, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.convert_u/i64 (get_local 1){{$}}
+; CHECK-NEXT: f64.convert_u/i64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @f64_convert_u_i64(i64 %x) {
@@ -277,7 +277,7 @@ define double @f64_convert_u_i64(i64 %x) {
 ; CHECK-NEXT: .local f32, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.promote/f32 (get_local 1){{$}}
+; CHECK-NEXT: f64.promote/f32 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @f64_promote_f32(float %x) {
@@ -291,7 +291,7 @@ define double @f64_promote_f32(float %x) {
 ; CHECK-NEXT: .local f64, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.demote/f64 (get_local 1){{$}}
+; CHECK-NEXT: f32.demote/f64 push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @f32_demote_f64(double %x) {
index ec3d5ae..4fb3601 100644 (file)
@@ -23,7 +23,7 @@ declare float @llvm.rint.f32(float)
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define float @fadd32(float %x, float %y) {
@@ -32,7 +32,7 @@ define float @fadd32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: fsub32:
-; CHECK: sub (get_local 3), (get_local 2){{$}}
+; CHECK: sub push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define float @fsub32(float %x, float %y) {
   %a = fsub float %x, %y
@@ -40,7 +40,7 @@ define float @fsub32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: fmul32:
-; CHECK: mul (get_local 3), (get_local 2){{$}}
+; CHECK: mul push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define float @fmul32(float %x, float %y) {
   %a = fmul float %x, %y
@@ -48,7 +48,7 @@ define float @fmul32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: fdiv32:
-; CHECK: div (get_local 3), (get_local 2){{$}}
+; CHECK: div push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define float @fdiv32(float %x, float %y) {
   %a = fdiv float %x, %y
@@ -56,7 +56,7 @@ define float @fdiv32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: fabs32:
-; CHECK: abs (get_local 1){{$}}
+; CHECK: abs push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @fabs32(float %x) {
   %a = call float @llvm.fabs.f32(float %x)
@@ -64,7 +64,7 @@ define float @fabs32(float %x) {
 }
 
 ; CHECK-LABEL: fneg32:
-; CHECK: neg (get_local 1){{$}}
+; CHECK: neg push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @fneg32(float %x) {
   %a = fsub float -0., %x
@@ -72,7 +72,7 @@ define float @fneg32(float %x) {
 }
 
 ; CHECK-LABEL: copysign32:
-; CHECK: copysign (get_local 3), (get_local 2){{$}}
+; CHECK: copysign push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define float @copysign32(float %x, float %y) {
   %a = call float @llvm.copysign.f32(float %x, float %y)
@@ -80,7 +80,7 @@ define float @copysign32(float %x, float %y) {
 }
 
 ; CHECK-LABEL: sqrt32:
-; CHECK: sqrt (get_local 1){{$}}
+; CHECK: sqrt push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @sqrt32(float %x) {
   %a = call float @llvm.sqrt.f32(float %x)
@@ -88,7 +88,7 @@ define float @sqrt32(float %x) {
 }
 
 ; CHECK-LABEL: ceil32:
-; CHECK: ceil (get_local 1){{$}}
+; CHECK: ceil push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @ceil32(float %x) {
   %a = call float @llvm.ceil.f32(float %x)
@@ -96,7 +96,7 @@ define float @ceil32(float %x) {
 }
 
 ; CHECK-LABEL: floor32:
-; CHECK: floor (get_local 1){{$}}
+; CHECK: floor push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @floor32(float %x) {
   %a = call float @llvm.floor.f32(float %x)
@@ -104,7 +104,7 @@ define float @floor32(float %x) {
 }
 
 ; CHECK-LABEL: trunc32:
-; CHECK: trunc (get_local 1){{$}}
+; CHECK: trunc push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @trunc32(float %x) {
   %a = call float @llvm.trunc.f32(float %x)
@@ -112,7 +112,7 @@ define float @trunc32(float %x) {
 }
 
 ; CHECK-LABEL: nearest32:
-; CHECK: nearest (get_local 1){{$}}
+; CHECK: nearest push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @nearest32(float %x) {
   %a = call float @llvm.nearbyint.f32(float %x)
@@ -120,7 +120,7 @@ define float @nearest32(float %x) {
 }
 
 ; CHECK-LABEL: nearest32_via_rint:
-; CHECK: nearest (get_local 1){{$}}
+; CHECK: nearest push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define float @nearest32_via_rint(float %x) {
   %a = call float @llvm.rint.f32(float %x)
index 04d26c4..5cc6e87 100644 (file)
@@ -23,7 +23,7 @@ declare double @llvm.rint.f64(double)
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define double @fadd64(double %x, double %y) {
@@ -32,7 +32,7 @@ define double @fadd64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: fsub64:
-; CHECK: sub (get_local 3), (get_local 2){{$}}
+; CHECK: sub push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define double @fsub64(double %x, double %y) {
   %a = fsub double %x, %y
@@ -40,7 +40,7 @@ define double @fsub64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: fmul64:
-; CHECK: mul (get_local 3), (get_local 2){{$}}
+; CHECK: mul push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define double @fmul64(double %x, double %y) {
   %a = fmul double %x, %y
@@ -48,7 +48,7 @@ define double @fmul64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: fdiv64:
-; CHECK: div (get_local 3), (get_local 2){{$}}
+; CHECK: div push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define double @fdiv64(double %x, double %y) {
   %a = fdiv double %x, %y
@@ -56,7 +56,7 @@ define double @fdiv64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: fabs64:
-; CHECK: abs (get_local 1){{$}}
+; CHECK: abs push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @fabs64(double %x) {
   %a = call double @llvm.fabs.f64(double %x)
@@ -64,7 +64,7 @@ define double @fabs64(double %x) {
 }
 
 ; CHECK-LABEL: fneg64:
-; CHECK: neg (get_local 1){{$}}
+; CHECK: neg push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @fneg64(double %x) {
   %a = fsub double -0., %x
@@ -72,7 +72,7 @@ define double @fneg64(double %x) {
 }
 
 ; CHECK-LABEL: copysign64:
-; CHECK: copysign (get_local 3), (get_local 2){{$}}
+; CHECK: copysign push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 define double @copysign64(double %x, double %y) {
   %a = call double @llvm.copysign.f64(double %x, double %y)
@@ -80,7 +80,7 @@ define double @copysign64(double %x, double %y) {
 }
 
 ; CHECK-LABEL: sqrt64:
-; CHECK: sqrt (get_local 1){{$}}
+; CHECK: sqrt push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @sqrt64(double %x) {
   %a = call double @llvm.sqrt.f64(double %x)
@@ -88,7 +88,7 @@ define double @sqrt64(double %x) {
 }
 
 ; CHECK-LABEL: ceil64:
-; CHECK: ceil (get_local 1){{$}}
+; CHECK: ceil push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @ceil64(double %x) {
   %a = call double @llvm.ceil.f64(double %x)
@@ -96,7 +96,7 @@ define double @ceil64(double %x) {
 }
 
 ; CHECK-LABEL: floor64:
-; CHECK: floor (get_local 1){{$}}
+; CHECK: floor push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @floor64(double %x) {
   %a = call double @llvm.floor.f64(double %x)
@@ -104,7 +104,7 @@ define double @floor64(double %x) {
 }
 
 ; CHECK-LABEL: trunc64:
-; CHECK: trunc (get_local 1){{$}}
+; CHECK: trunc push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @trunc64(double %x) {
   %a = call double @llvm.trunc.f64(double %x)
@@ -112,7 +112,7 @@ define double @trunc64(double %x) {
 }
 
 ; CHECK-LABEL: nearest64:
-; CHECK: nearest (get_local 1){{$}}
+; CHECK: nearest push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @nearest64(double %x) {
   %a = call double @llvm.nearbyint.f64(double %x)
@@ -120,7 +120,7 @@ define double @nearest64(double %x) {
 }
 
 ; CHECK-LABEL: nearest64_via_rint:
-; CHECK: nearest (get_local 1){{$}}
+; CHECK: nearest push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define double @nearest64_via_rint(double %x) {
   %a = call double @llvm.rint.f64(double %x)
index d958dba..0d14319 100644 (file)
@@ -18,7 +18,7 @@ declare i32 @llvm.ctpop.i32(i32)
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @add32(i32 %x, i32 %y) {
@@ -35,7 +35,7 @@ define i32 @add32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: sub (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: sub push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @sub32(i32 %x, i32 %y) {
@@ -52,7 +52,7 @@ define i32 @sub32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: mul (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: mul push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @mul32(i32 %x, i32 %y) {
@@ -69,7 +69,7 @@ define i32 @mul32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: div_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @sdiv32(i32 %x, i32 %y) {
@@ -86,7 +86,7 @@ define i32 @sdiv32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: div_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @udiv32(i32 %x, i32 %y) {
@@ -103,7 +103,7 @@ define i32 @udiv32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: rem_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @srem32(i32 %x, i32 %y) {
@@ -120,7 +120,7 @@ define i32 @srem32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: rem_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @urem32(i32 %x, i32 %y) {
@@ -137,7 +137,7 @@ define i32 @urem32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: and (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: and push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @and32(i32 %x, i32 %y) {
@@ -154,7 +154,7 @@ define i32 @and32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: or (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: or push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @or32(i32 %x, i32 %y) {
@@ -171,7 +171,7 @@ define i32 @or32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: xor (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: xor push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @xor32(i32 %x, i32 %y) {
@@ -188,7 +188,7 @@ define i32 @xor32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shl push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @shl32(i32 %x, i32 %y) {
@@ -205,7 +205,7 @@ define i32 @shl32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shr_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @shr32(i32 %x, i32 %y) {
@@ -222,7 +222,7 @@ define i32 @shr32(i32 %x, i32 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shr_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i32 @sar32(i32 %x, i32 %y) {
@@ -236,7 +236,7 @@ define i32 @sar32(i32 %x, i32 %y) {
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz (get_local 1){{$}}
+; CHECK-NEXT: clz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @clz32(i32 %x) {
@@ -250,7 +250,7 @@ define i32 @clz32(i32 %x) {
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz (get_local 1){{$}}
+; CHECK-NEXT: clz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @clz32_zero_undef(i32 %x) {
@@ -264,7 +264,7 @@ define i32 @clz32_zero_undef(i32 %x) {
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz (get_local 1){{$}}
+; CHECK-NEXT: ctz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @ctz32(i32 %x) {
@@ -278,7 +278,7 @@ define i32 @ctz32(i32 %x) {
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz (get_local 1){{$}}
+; CHECK-NEXT: ctz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @ctz32_zero_undef(i32 %x) {
@@ -292,7 +292,7 @@ define i32 @ctz32_zero_undef(i32 %x) {
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: popcnt (get_local 1){{$}}
+; CHECK-NEXT: popcnt push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @popcnt32(i32 %x) {
index 28d1ef9..0d39d6f 100644 (file)
@@ -18,7 +18,7 @@ declare i64 @llvm.ctpop.i64(i64)
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @add64(i64 %x, i64 %y) {
@@ -35,7 +35,7 @@ define i64 @add64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: sub (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: sub push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @sub64(i64 %x, i64 %y) {
@@ -52,7 +52,7 @@ define i64 @sub64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: mul (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: mul push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @mul64(i64 %x, i64 %y) {
@@ -69,7 +69,7 @@ define i64 @mul64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: div_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @sdiv64(i64 %x, i64 %y) {
@@ -86,7 +86,7 @@ define i64 @sdiv64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: div_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @udiv64(i64 %x, i64 %y) {
@@ -103,7 +103,7 @@ define i64 @udiv64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: rem_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @srem64(i64 %x, i64 %y) {
@@ -120,7 +120,7 @@ define i64 @srem64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: rem_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @urem64(i64 %x, i64 %y) {
@@ -137,7 +137,7 @@ define i64 @urem64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: and (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: and push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @and64(i64 %x, i64 %y) {
@@ -154,7 +154,7 @@ define i64 @and64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: or (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: or push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @or64(i64 %x, i64 %y) {
@@ -171,7 +171,7 @@ define i64 @or64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: xor (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: xor push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @xor64(i64 %x, i64 %y) {
@@ -188,7 +188,7 @@ define i64 @xor64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shl push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @shl64(i64 %x, i64 %y) {
@@ -205,7 +205,7 @@ define i64 @shl64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_u (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shr_u push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @shr64(i64 %x, i64 %y) {
@@ -222,7 +222,7 @@ define i64 @shr64(i64 %x, i64 %y) {
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_s (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: shr_s push, (get_local 3), (get_local 2){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
 ; CHECK-NEXT: return (get_local 4){{$}}
 define i64 @sar64(i64 %x, i64 %y) {
@@ -236,7 +236,7 @@ define i64 @sar64(i64 %x, i64 %y) {
 ; CHECK-NEXT: .local i64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz (get_local 1){{$}}
+; CHECK-NEXT: clz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @clz64(i64 %x) {
@@ -250,7 +250,7 @@ define i64 @clz64(i64 %x) {
 ; CHECK-NEXT: .local i64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz (get_local 1){{$}}
+; CHECK-NEXT: clz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @clz64_zero_undef(i64 %x) {
@@ -264,7 +264,7 @@ define i64 @clz64_zero_undef(i64 %x) {
 ; CHECK-NEXT: .local i64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz (get_local 1){{$}}
+; CHECK-NEXT: ctz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @ctz64(i64 %x) {
@@ -278,7 +278,7 @@ define i64 @ctz64(i64 %x) {
 ; CHECK-NEXT: .local i64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz (get_local 1){{$}}
+; CHECK-NEXT: ctz push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @ctz64_zero_undef(i64 %x) {
@@ -292,7 +292,7 @@ define i64 @ctz64_zero_undef(i64 %x) {
 ; CHECK-NEXT: .local i64, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: popcnt (get_local 1){{$}}
+; CHECK-NEXT: popcnt push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @popcnt64(i64 %x) {
index deff7e4..e6fb59c 100644 (file)
@@ -6,7 +6,7 @@ target datalayout = "e-p:32:32-i64:64-n32:64-S128"
 target triple = "wasm32-unknown-unknown"
 
 ; CHECK-LABEL: sext_i8_i32:
-; CHECK: i32.load8_s (get_local 1){{$}}
+; CHECK: i32.load8_s push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i32 @sext_i8_i32(i8 *%p) {
   %v = load i8, i8* %p
@@ -15,7 +15,7 @@ define i32 @sext_i8_i32(i8 *%p) {
 }
 
 ; CHECK-LABEL: zext_i8_i32:
-; CHECK: i32.load8_u (get_local 1){{$}}
+; CHECK: i32.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i32 @zext_i8_i32(i8 *%p) {
   %v = load i8, i8* %p
@@ -24,7 +24,7 @@ define i32 @zext_i8_i32(i8 *%p) {
 }
 
 ; CHECK-LABEL: sext_i16_i32:
-; CHECK: i32.load16_s (get_local 1){{$}}
+; CHECK: i32.load16_s push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i32 @sext_i16_i32(i16 *%p) {
   %v = load i16, i16* %p
@@ -33,7 +33,7 @@ define i32 @sext_i16_i32(i16 *%p) {
 }
 
 ; CHECK-LABEL: zext_i16_i32:
-; CHECK: i32.load16_u (get_local 1){{$}}
+; CHECK: i32.load16_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i32 @zext_i16_i32(i16 *%p) {
   %v = load i16, i16* %p
@@ -42,7 +42,7 @@ define i32 @zext_i16_i32(i16 *%p) {
 }
 
 ; CHECK-LABEL: sext_i8_i64:
-; CHECK: i64.load8_s (get_local 1){{$}}
+; CHECK: i64.load8_s push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i64 @sext_i8_i64(i8 *%p) {
   %v = load i8, i8* %p
@@ -51,7 +51,7 @@ define i64 @sext_i8_i64(i8 *%p) {
 }
 
 ; CHECK-LABEL: zext_i8_i64:
-; CHECK: i64.load8_u (get_local 1){{$}}
+; CHECK: i64.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i64 @zext_i8_i64(i8 *%p) {
   %v = load i8, i8* %p
@@ -60,7 +60,7 @@ define i64 @zext_i8_i64(i8 *%p) {
 }
 
 ; CHECK-LABEL: sext_i16_i64:
-; CHECK: i64.load16_s (get_local 1){{$}}
+; CHECK: i64.load16_s push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i64 @sext_i16_i64(i16 *%p) {
   %v = load i16, i16* %p
@@ -69,7 +69,7 @@ define i64 @sext_i16_i64(i16 *%p) {
 }
 
 ; CHECK-LABEL: zext_i16_i64:
-; CHECK: i64.load16_u (get_local 1){{$}}
+; CHECK: i64.load16_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i64 @zext_i16_i64(i16 *%p) {
   %v = load i16, i16* %p
@@ -78,7 +78,7 @@ define i64 @zext_i16_i64(i16 *%p) {
 }
 
 ; CHECK-LABEL: sext_i32_i64:
-; CHECK: i64.load32_s (get_local 1){{$}}
+; CHECK: i64.load32_s push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 define i64 @sext_i32_i64(i32 *%p) {
   %v = load i32, i32* %p
@@ -87,7 +87,7 @@ define i64 @sext_i32_i64(i32 *%p) {
 }
 
 ; CHECK-LABEL: zext_i32_i64:
-; CHECK: i64.load32_u (get_local 1){{$}}
+; CHECK: i64.load32_u push, (get_local 1){{$}}
 ; CHECK: set_local 2, pop{{$}}
 define i64 @zext_i32_i64(i32 *%p) {
   %v = load i32, i32* %p
index 8436af8..18b8c7d 100644 (file)
@@ -6,7 +6,7 @@ target datalayout = "e-p:32:32-i64:64-n32:64-S128"
 target triple = "wasm32-unknown-unknown"
 
 ; CHECK-LABEL: load_u_i1_i32:
-; CHECK:      i32.load8_u (get_local 1){{$}}
+; CHECK:      i32.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @load_u_i1_i32(i1* %p) {
@@ -16,13 +16,13 @@ define i32 @load_u_i1_i32(i1* %p) {
 }
 
 ; CHECK-LABEL: load_s_i1_i32:
-; CHECK:      i32.load8_u (get_local 1){{$}}
+; CHECK:      i32.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: i32.const 31{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl (get_local 2), (get_local 3){{$}}
+; CHECK-NEXT: shl push, (get_local 2), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: shr_s (get_local 4), (get_local 3){{$}}
+; CHECK-NEXT: shr_s push, (get_local 4), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
 ; CHECK-NEXT: return (get_local 5){{$}}
 define i32 @load_s_i1_i32(i1* %p) {
@@ -32,7 +32,7 @@ define i32 @load_s_i1_i32(i1* %p) {
 }
 
 ; CHECK-LABEL: load_u_i1_i64:
-; CHECK:      i64.load8_u (get_local 1){{$}}
+; CHECK:      i64.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @load_u_i1_i64(i1* %p) {
@@ -42,13 +42,13 @@ define i64 @load_u_i1_i64(i1* %p) {
 }
 
 ; CHECK-LABEL: load_s_i1_i64:
-; CHECK:      i64.load8_u (get_local 1){{$}}
+; CHECK:      i64.load8_u push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: i64.const 63{{$}}
 ; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl (get_local 2), (get_local 3){{$}}
+; CHECK-NEXT: shl push, (get_local 2), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: shr_s (get_local 4), (get_local 3){{$}}
+; CHECK-NEXT: shr_s push, (get_local 4), (get_local 3){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
 ; CHECK-NEXT: return (get_local 5){{$}}
 define i64 @load_s_i1_i64(i1* %p) {
@@ -60,7 +60,7 @@ define i64 @load_s_i1_i64(i1* %p) {
 ; CHECK-LABEL: store_i32_i1:
 ; CHECK:      i32.const 1{{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: and (get_local 3), (get_local 4){{$}}
+; CHECK-NEXT: and push, (get_local 3), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
 ; CHECK-NEXT: i32.store8 (get_local 2), (get_local 5){{$}}
 define void @store_i32_i1(i1* %p, i32 %v) {
@@ -72,7 +72,7 @@ define void @store_i32_i1(i1* %p, i32 %v) {
 ; CHECK-LABEL: store_i64_i1:
 ; CHECK:      i64.const 1{{$}}
 ; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: and (get_local 3), (get_local 4){{$}}
+; CHECK-NEXT: and push, (get_local 3), (get_local 4){{$}}
 ; CHECK-NEXT: set_local 5, pop{{$}}
 ; CHECK-NEXT: i64.store8 (get_local 2), (get_local 5){{$}}
 define void @store_i64_i1(i1* %p, i64 %v) {
index e1eb67f..45bae71 100644 (file)
@@ -11,7 +11,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-NEXT: .local i32, i32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i32.load (get_local 1){{$}}
+; CHECK-NEXT: i32.load push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i32 @ldi32(i32 *%p) {
@@ -25,7 +25,7 @@ define i32 @ldi32(i32 *%p) {
 ; CHECK-NEXT: .local i32, i64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: i64.load (get_local 1){{$}}
+; CHECK-NEXT: i64.load push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define i64 @ldi64(i64 *%p) {
@@ -39,7 +39,7 @@ define i64 @ldi64(i64 *%p) {
 ; CHECK-NEXT: .local i32, f32{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f32.load (get_local 1){{$}}
+; CHECK-NEXT: f32.load push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define float @ldf32(float *%p) {
@@ -53,7 +53,7 @@ define float @ldf32(float *%p) {
 ; CHECK-NEXT: .local i32, f64{{$}}
 ; CHECK-NEXT: get_local 0{{$}}
 ; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: f64.load (get_local 1){{$}}
+; CHECK-NEXT: f64.load push, (get_local 1){{$}}
 ; CHECK-NEXT: set_local 2, pop{{$}}
 ; CHECK-NEXT: return (get_local 2){{$}}
 define double @ldf64(double *%p) {
index 5ef2da3..d5274c0 100644 (file)
@@ -10,7 +10,7 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK-LABEL: test0:
 ; CHECK: get_local 0{{$}}
 ; CHECK: set_local [[REG:.*]], pop
-; CHECK: div_s (get_local [[REG]]), {{.*}}
+; CHECK: div_s push, (get_local [[REG]]), {{.*}}
 ; CHECK: set_local [[REG]], pop
 ; CHECK: return (get_local [[REG]])
 define i32 @test0(i32 %p) {
index 83b4d13..42dc384 100644 (file)
@@ -11,9 +11,9 @@ target triple = "wasm32-unknown-unknown"
 ; CHECK: set_local [[LOCAL_B:[0-9]]]
 ; CHECK: get_local 0
 ; CHECK: set_local [[LOCAL_A:[0-9]]]
-; CHECK: i32.eq (get_local 5), (get_local 6)
+; CHECK: i32.eq push, (get_local 5), (get_local 6)
 ; CHECK: set_local 7, pop
-; CHECK: i32.select (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
+; CHECK: i32.select push, (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
 define i32 @select_i32(i32 %a, i32 %b, i32 %cond) {
  %cc = icmp eq i32 %cond, 0
  %result = select i1 %cc, i32 %a, i32 %b
@@ -25,9 +25,9 @@ define i32 @select_i32(i32 %a, i32 %b, i32 %cond) {
 ; CHECK: set_local [[LOCAL_B:[0-9]]]
 ; CHECK: get_local 0
 ; CHECK: set_local [[LOCAL_A:[0-9]]]
-; CHECK: i32.eq (get_local 5), (get_local 6)
+; CHECK: i32.eq push, (get_local 5), (get_local 6)
 ; CHECK: set_local 7, pop
-; CHECK: i64.select (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
+; CHECK: i64.select push, (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
 define i64 @select_i64(i64 %a, i64 %b, i32 %cond) {
  %cc = icmp eq i32 %cond, 0
  %result = select i1 %cc, i64 %a, i64 %b
@@ -39,9 +39,9 @@ define i64 @select_i64(i64 %a, i64 %b, i32 %cond) {
 ; CHECK: set_local [[LOCAL_B:[0-9]]]
 ; CHECK: get_local 0
 ; CHECK: set_local [[LOCAL_A:[0-9]]]
-; CHECK: i32.eq (get_local 5), (get_local 6)
+; CHECK: i32.eq push, (get_local 5), (get_local 6)
 ; CHECK: set_local 7, pop
-; CHECK: f32.select (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
+; CHECK: f32.select push, (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
 define float @select_f32(float %a, float %b, i32 %cond) {
  %cc = icmp eq i32 %cond, 0
  %result = select i1 %cc, float %a, float %b
@@ -53,9 +53,9 @@ define float @select_f32(float %a, float %b, i32 %cond) {
 ; CHECK: set_local [[LOCAL_B:[0-9]]]
 ; CHECK: get_local 0
 ; CHECK: set_local [[LOCAL_A:[0-9]]]
-; CHECK: i32.eq (get_local 5), (get_local 6)
+; CHECK: i32.eq push, (get_local 5), (get_local 6)
 ; CHECK: set_local 7, pop
-; CHECK: f64.select (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
+; CHECK: f64.select push, (get_local 7), (get_local [[LOCAL_A]]), (get_local [[LOCAL_B]])
 define double @select_f64(double %a, double %b, i32 %cond) {
  %cc = icmp eq i32 %cond, 0
  %result = select i1 %cc, double %a, double %b