diff options
Diffstat (limited to 'lib/Target/WebAssembly/WebAssemblySubtarget.h')
| -rw-r--r-- | lib/Target/WebAssembly/WebAssemblySubtarget.h | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/Target/WebAssembly/WebAssemblySubtarget.h b/lib/Target/WebAssembly/WebAssemblySubtarget.h index b170dbff3b32..0a0c04609ac4 100644 --- a/lib/Target/WebAssembly/WebAssemblySubtarget.h +++ b/lib/Target/WebAssembly/WebAssemblySubtarget.h @@ -29,11 +29,16 @@  namespace llvm {  class WebAssemblySubtarget final : public WebAssemblyGenSubtargetInfo { -  bool HasSIMD128; -  bool HasAtomics; -  bool HasNontrappingFPToInt; -  bool HasSignExt; -  bool HasExceptionHandling; +  enum SIMDEnum { +    NoSIMD, +    SIMD128, +    UnimplementedSIMD128, +  } SIMDLevel = NoSIMD; + +  bool HasAtomics = false; +  bool HasNontrappingFPToInt = false; +  bool HasSignExt = false; +  bool HasExceptionHandling = false;    /// String name of used CPU.    std::string CPUString; @@ -77,7 +82,10 @@ public:    // Predicates used by WebAssemblyInstrInfo.td.    bool hasAddr64() const { return TargetTriple.isArch64Bit(); } -  bool hasSIMD128() const { return HasSIMD128; } +  bool hasSIMD128() const { return SIMDLevel >= SIMD128; } +  bool hasUnimplementedSIMD128() const { +    return SIMDLevel >= UnimplementedSIMD128; +  }    bool hasAtomics() const { return HasAtomics; }    bool hasNontrappingFPToInt() const { return HasNontrappingFPToInt; }    bool hasSignExt() const { return HasSignExt; }  | 
