[llvm] r339082 - [WebAssembly] Replace SIMD expression types with V128
Derek Schuff via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 6 16:16:50 PDT 2018
Author: dschuff
Date: Mon Aug 6 16:16:50 2018
New Revision: 339082
URL: http://llvm.org/viewvc/llvm-project?rev=339082&view=rev
Log:
[WebAssembly] Replace SIMD expression types with V128
Summary:
The spec only defines a SIMD expression type of V128 and
leaves interpretation of different vector types to the instructions.
Differential Revision: https://reviews.llvm.org/D50367
Patch by Thomas Lively
Modified:
llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
Modified: llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp?rev=339082&r1=339081&r2=339082&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp Mon Aug 6 16:16:50 2018
@@ -211,13 +211,7 @@ void WebAssemblyInstPrinter::printWebAss
case WebAssembly::ExprType::I64: O << "i64"; break;
case WebAssembly::ExprType::F32: O << "f32"; break;
case WebAssembly::ExprType::F64: O << "f64"; break;
- case WebAssembly::ExprType::I8x16: O << "i8x16"; break;
- case WebAssembly::ExprType::I16x8: O << "i16x8"; break;
- case WebAssembly::ExprType::I32x4: O << "i32x4"; break;
- case WebAssembly::ExprType::F32x4: O << "f32x4"; break;
- case WebAssembly::ExprType::B8x16: O << "b8x16"; break;
- case WebAssembly::ExprType::B16x8: O << "b16x8"; break;
- case WebAssembly::ExprType::B32x4: O << "b32x4"; break;
+ case WebAssembly::ExprType::V128: O << "v128"; break;
case WebAssembly::ExprType::ExceptRef: O << "except_ref"; break;
}
}
Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h?rev=339082&r1=339081&r2=339082&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h Mon Aug 6 16:16:50 2018
@@ -312,18 +312,12 @@ static const unsigned StoreP2AlignOperan
/// This is used to indicate block signatures.
enum class ExprType : unsigned {
- Void = 0x40,
- I32 = 0x7F,
- I64 = 0x7E,
- F32 = 0x7D,
- F64 = 0x7C,
- I8x16 = 0x7B,
- I16x8 = 0x7A,
- I32x4 = 0x79,
- F32x4 = 0x78,
- B8x16 = 0x77,
- B16x8 = 0x76,
- B32x4 = 0x75,
+ Void = 0x40,
+ I32 = 0x7F,
+ I64 = 0x7E,
+ F32 = 0x7D,
+ F64 = 0x7C,
+ V128 = 0x7B,
ExceptRef = 0x68
};
Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp?rev=339082&r1=339081&r2=339082&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp Mon Aug 6 16:16:50 2018
@@ -253,10 +253,12 @@ static void FixEndsAtEndOfFunction(
case MVT::i64: retType = WebAssembly::ExprType::I64; break;
case MVT::f32: retType = WebAssembly::ExprType::F32; break;
case MVT::f64: retType = WebAssembly::ExprType::F64; break;
- case MVT::v16i8: retType = WebAssembly::ExprType::I8x16; break;
- case MVT::v8i16: retType = WebAssembly::ExprType::I16x8; break;
- case MVT::v4i32: retType = WebAssembly::ExprType::I32x4; break;
- case MVT::v4f32: retType = WebAssembly::ExprType::F32x4; break;
+ case MVT::v16i8:
+ case MVT::v8i16:
+ case MVT::v4i32:
+ case MVT::v4f32:
+ retType = WebAssembly::ExprType::V128;
+ break;
case MVT::ExceptRef: retType = WebAssembly::ExprType::ExceptRef; break;
default: llvm_unreachable("unexpected return type");
}
More information about the llvm-commits
mailing list