[WebAssembly] Fix assembly printing of br_table

Summary: In `br_table's stack version asm string, \t was missing.

Reviewers: aardappel

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53516

llvm-svn: 344981
This commit is contained in:
Heejin Ahn 2018-10-23 00:28:14 +00:00
parent 45f143c316
commit a40303aa03
2 changed files with 34 additions and 2 deletions

View File

@ -51,7 +51,7 @@ def BR_TABLE_I32 : NI<(outs), (ins I32:$index, variable_ops),
let BaseName = "BR_TABLE_I32" in
def BR_TABLE_I32_S : NI<(outs), (ins variable_ops),
[], "true",
"br_table", 0x0e> {
"br_table \t", 0x0e> {
let TSFlags{0} = 1;
let TSFlags{1} = 1;
}
@ -65,7 +65,7 @@ def BR_TABLE_I64 : NI<(outs), (ins I64:$index, variable_ops),
let BaseName = "BR_TABLE_I64" in
def BR_TABLE_I64_S : NI<(outs), (ins variable_ops),
[], "true",
"br_table"> {
"br_table \t"> {
let TSFlags{0} = 1;
let TSFlags{1} = 1;
}

View File

@ -0,0 +1,32 @@
; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs | FileCheck %s
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-unknown"
declare void @foo0()
declare void @foo1()
; Tests if br_table is printed correctly with a tab.
; CHECK-LABEL: test0:
; CHECK-NOT: br_table0, 1, 0, 1, 0
; CHECK: br_table 0, 1, 0, 1, 0
define void @test0(i32 %n) {
entry:
switch i32 %n, label %sw.epilog [
i32 0, label %sw.bb
i32 1, label %sw.bb.1
i32 2, label %sw.bb
i32 3, label %sw.bb.1
]
sw.bb: ; preds = %entry, %entry
tail call void @foo0()
br label %sw.epilog
sw.bb.1: ; preds = %entry, %entry
tail call void @foo1()
br label %sw.epilog
sw.epilog: ; preds = %entry, %sw.bb, %sw.bb.1
ret void
}