Index: lib/Target/X86/X86InstrCMovSetCC.td =================================================================== --- lib/Target/X86/X86InstrCMovSetCC.td +++ lib/Target/X86/X86InstrCMovSetCC.td @@ -110,3 +110,6 @@ defm SETLE : SETCC<0x9E, "setle", X86_COND_LE>; // signed less than or equal defm SETG : SETCC<0x9F, "setg", X86_COND_G>; // signed greater than +let Uses = [EFLAGS], Defs = [AL] in { + def SALC : I<0xD6, RawFrm, (outs), (ins), "salc", []>; +} Index: test/MC/Disassembler/X86/simple-tests.txt =================================================================== --- test/MC/Disassembler/X86/simple-tests.txt +++ test/MC/Disassembler/X86/simple-tests.txt @@ -719,6 +719,9 @@ # CHECK: shrxq %r12, %r11, %r10 0xc4 0x42 0x9b 0xf7 0xd3 +# CHECK: salc +0xd6 + # CHECK: vfmadd132ps %xmm11, %xmm12, %xmm10 0xc4 0x42 0x19 0x98 0xd3 Index: test/MC/Disassembler/X86/x86-16.txt =================================================================== --- test/MC/Disassembler/X86/x86-16.txt +++ test/MC/Disassembler/X86/x86-16.txt @@ -408,6 +408,9 @@ # CHECK: popfl 0x66 0x9d +# CHECK: salc +0xd6 + # CHECK: setb %bl 0x0f 0x92 0xc3 Index: test/MC/X86/x86-32-coverage.s =================================================================== --- test/MC/X86/x86-32-coverage.s +++ test/MC/X86/x86-32-coverage.s @@ -281,6 +281,10 @@ // CHECK: encoding: [0xfb] sti +// CHECK: salc +// CHECK: encoding: [0xd6] + salc + // CHECK: addb $254, 3735928559(%ebx,%ecx,8) // CHECK: encoding: [0x80,0x84,0xcb,0xef,0xbe,0xad,0xde,0xfe] addb $0xfe,0xdeadbeef(%ebx,%ecx,8)