summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wat-writer.cc6
-rw-r--r--test/roundtrip/simd.txt22
2 files changed, 25 insertions, 3 deletions
diff --git a/src/wat-writer.cc b/src/wat-writer.cc
index 27ed5d12..c824d3da 100644
--- a/src/wat-writer.cc
+++ b/src/wat-writer.cc
@@ -922,7 +922,7 @@ Result WatWriter::ExprVisitorDelegate::OnTernaryExpr(TernaryExpr* expr) {
Result WatWriter::ExprVisitorDelegate::OnSimdLaneOpExpr(SimdLaneOpExpr* expr) {
writer_->WritePutsSpace(expr->opcode.GetName());
writer_->Writef("%" PRIu64, (expr->val));
- writer_->WritePutsNewline("");
+ writer_->WriteNewline(NO_FORCE_NEWLINE);
return Result::Ok;
}
@@ -931,9 +931,9 @@ Result WatWriter::ExprVisitorDelegate::OnSimdShuffleOpExpr(
writer_->WritePutsSpace(expr->opcode.GetName());
std::array<uint8_t, 16> values = Bitcast<std::array<uint8_t, 16>>(expr->val);
for (int32_t lane = 0; lane < 16; ++lane) {
- writer_->Writef(" %u", values[lane]);
+ writer_->Writef("%u", values[lane]);
}
- writer_->WritePutsNewline("");
+ writer_->WriteNewline(NO_FORCE_NEWLINE);
return Result::Ok;
}
diff --git a/test/roundtrip/simd.txt b/test/roundtrip/simd.txt
new file mode 100644
index 00000000..943ac78c
--- /dev/null
+++ b/test/roundtrip/simd.txt
@@ -0,0 +1,22 @@
+;;; TOOL: run-roundtrip
+;;; ARGS: --stdout --enable-simd
+(module
+ (func (param v128) (result v128)
+ local.get 0
+ local.get 0
+ v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
+ (func (param v128) (result f32)
+ local.get 0
+ f32x4.extract_lane 1))
+(;; STDOUT ;;;
+(module
+ (type (;0;) (func (param v128) (result v128)))
+ (type (;1;) (func (param v128) (result f32)))
+ (func (;0;) (type 0) (param v128) (result v128)
+ local.get 0
+ local.get 0
+ v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
+ (func (;1;) (type 1) (param v128) (result f32)
+ local.get 0
+ f32x4.extract_lane 1))
+;;; STDOUT ;;)