diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 12783a823ad0a7293da166e25b053b8c15fd0edc..85552339ce6007b80e8485cf43d844f22f40880e 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1807,11 +1807,11 @@ std::unique_ptr<X86Operand> X86AsmParser::ParseIntelOperand() {
     Parser.Lex(); // Eat operand size (e.g., byte, word).
     if (KsSyntax == KS_OPT_SYNTAX_NASM) {
         // Nasm do not accept 'PTR' in memory operands
-        if (Tok.getString() == "PTR" && Tok.getString() == "ptr")
+        if (strcasecmp(Tok.getString().str().c_str(), "ptr") == 0)
             return ErrorOperand(Tok.getLoc(), "Do not expected 'PTR' or 'ptr' token!");
     } else {
         // LLVM requires 'PTR' in memory operand
-        if (Tok.getString() != "PTR" && Tok.getString() != "ptr")
+        if (strcasecmp(Tok.getString().str().c_str(), "ptr") != 0)
             return ErrorOperand(Tok.getLoc(), "Expected 'PTR' or 'ptr' token!");
         Parser.Lex(); // Eat ptr.
     }