diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index c0f54b223877cf..dbea42d55b5fce 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2318,7 +2318,7 @@ bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) { return Error(Tok.getLoc(), "Expected { at this point"); Parser.Lex(); // Eat "{" Tok = Parser.getTok(); - if (Tok.getIdentifier() != "dfv") + if (Tok.getIdentifier().lower() != "dfv") return Error(Tok.getLoc(), "Expected dfv at this point"); Parser.Lex(); // Eat "dfv" Tok = Parser.getTok(); @@ -2338,7 +2338,7 @@ bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) { unsigned CFlags = 0; for (unsigned I = 0; I < 4; ++I) { Tok = Parser.getTok(); - unsigned CFlag = StringSwitch(Tok.getIdentifier()) + unsigned CFlag = StringSwitch(Tok.getIdentifier().lower()) .Case("of", 0x8) .Case("sf", 0x4) .Case("zf", 0x2) diff --git a/llvm/test/MC/X86/apx/ccmp-att.s b/llvm/test/MC/X86/apx/ccmp-att.s index 0b78562f32e18e..405071b0f4310f 100644 --- a/llvm/test/MC/X86/apx/ccmp-att.s +++ b/llvm/test/MC/X86/apx/ccmp-att.s @@ -1,7 +1,7 @@ # RUN: llvm-mc -triple x86_64 -show-encoding %s | FileCheck %s # RUN: not llvm-mc -triple i386 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR -# ERROR-COUNT-401: error: +# ERROR-COUNT-402: error: # ERROR-NOT: error: ## Condition flags @@ -1211,3 +1211,9 @@ # CHECK: ccmpeq {dfv=of} %r9, %r15 # CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf] ccmpeq {dfv=of} %r9, %r15 + +## Case sensitive + +# CHECK: ccmpoq {dfv=of,sf,zf,cf} %rax, %rbx +# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3] + ccmpoq {dFV=Cf,zF,SF,of} %rax, %rbx diff --git a/llvm/test/MC/X86/apx/ccmp-intel.s b/llvm/test/MC/X86/apx/ccmp-intel.s index 095f7fb71b7c84..2d446b053d94e0 100644 --- a/llvm/test/MC/X86/apx/ccmp-intel.s +++ b/llvm/test/MC/X86/apx/ccmp-intel.s @@ -1208,3 +1208,9 @@ # CHECK: ccmpe {dfv=of} r15, r9 # CHECK: encoding: [0x62,0x54,0xc4,0x04,0x39,0xcf] ccmpe {dfv=of} r15, r9 + +## Case sensitive + +# CHECK: ccmpo {dfv=of,sf,zf,cf} rbx, rax +# CHECK: encoding: [0x62,0xf4,0xfc,0x00,0x39,0xc3] + ccmpo {DFv=Cf,zF,SF,of} rbx, rax