Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp =================================================================== --- lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -4023,7 +4023,7 @@ unsigned IFlags = 0; if (IFlagsStr != "none") { for (int i = 0, e = IFlagsStr.size(); i != e; ++i) { - unsigned Flag = StringSwitch(IFlagsStr.substr(i, 1)) + unsigned Flag = StringSwitch(IFlagsStr.substr(i, 1).lower()) .Case("a", ARM_PROC::A) .Case("i", ARM_PROC::I) .Case("f", ARM_PROC::F) Index: test/MC/ARM/basic-arm-instructions.s =================================================================== --- test/MC/ARM/basic-arm-instructions.s +++ test/MC/ARM/basic-arm-instructions.s @@ -791,10 +791,12 @@ @ CPS @------------------------------------------------------------------------------ cpsie aif + cpsie AIF cps #15 cpsid if, #10 @ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1] +@ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1] @ CHECK: cps #15 @ encoding: [0x0f,0x00,0x02,0xf1] @ CHECK: cpsid if, #10 @ encoding: [0xca,0x00,0x0e,0xf1]