Skip to content

[X86][MC] Remove CMPCCXADD's CondCode flavor. #103898

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions clang/test/CodeGen/X86/cmpccxadd-builtins.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,50 +52,50 @@ long long test_cmplxadd64(void *__A, long long __B, long long __C) {
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_NB);
}

int test_cmpnbexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnbexadd32(
int test_cmpaxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpaxadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 4)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_Z);
}

long long test_cmpnbexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnbexadd64(
long long test_cmpaxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpaxadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 4)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_Z);
}

int test_cmpnbxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnbxadd32(
int test_cmpaexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpaexadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 5)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_NZ);
}

long long test_cmpnbxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnbxadd64(
long long test_cmpaexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpaexadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 5)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_NZ);
}

int test_cmpnlexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnlexadd32(
int test_cmpgxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpgxadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 6)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_BE);
}

long long test_cmpnlexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnlexadd64(
long long test_cmpgxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpgxadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 6)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_BE);
}

int test_cmpnlxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnlxadd32(
int test_cmpgexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpgexadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 7)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_NBE);
}

long long test_cmpnlxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnlxadd64(
long long test_cmpgexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpgexadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 7)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_NBE);
}
Expand Down Expand Up @@ -136,14 +136,14 @@ long long test_cmpnsxadd64(void *__A, long long __B, long long __C) {
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_P);
}

int test_cmpnzxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnzxadd32(
int test_cmpnexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpnexadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 11)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_NP);
}

long long test_cmpnzxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnzxadd64(
long long test_cmpnexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpnexadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 11)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_NP);
}
Expand Down Expand Up @@ -184,14 +184,14 @@ long long test_cmpsxadd64(void *__A, long long __B, long long __C) {
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_LE);
}

int test_cmpzxadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpzxadd32(
int test_cmpexadd32(void *__A, int __B, int __C) {
// CHECK-LABEL: @test_cmpexadd32(
// CHECK: call i32 @llvm.x86.cmpccxadd32(ptr %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 15)
return _cmpccxadd_epi32(__A, __B, __C, _CMPCCX_NLE);
}

long long test_cmpzxadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpzxadd64(
long long test_cmpexadd64(void *__A, long long __B, long long __C) {
// CHECK-LABEL: @test_cmpexadd64(
// CHECK: call i64 @llvm.x86.cmpccxadd64(ptr %{{.*}}, i64 %{{.*}}, i64 %{{.*}}, i32 15)
return _cmpccxadd_epi64(__A, __B, __C, _CMPCCX_NLE);
}
13 changes: 6 additions & 7 deletions llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ void X86InstPrinterCommon::printCondCode(const MCInst *MI, unsigned Op,
raw_ostream &O) {
int64_t Imm = MI->getOperand(Op).getImm();
unsigned Opc = MI->getOpcode();
bool IsCMPCCXADD = X86::isCMPCCXADD(Opc);
bool IsCCMPOrCTEST = X86::isCCMPCC(Opc) || X86::isCTESTCC(Opc);

// clang-format off
Expand All @@ -39,19 +38,19 @@ void X86InstPrinterCommon::printCondCode(const MCInst *MI, unsigned Op,
case 0: O << "o"; break;
case 1: O << "no"; break;
case 2: O << "b"; break;
case 3: O << (IsCMPCCXADD ? "nb" : "ae"); break;
case 4: O << (IsCMPCCXADD ? "z" : "e"); break;
case 5: O << (IsCMPCCXADD ? "nz" : "ne"); break;
case 3: O << "ae"; break;
case 4: O << "e"; break;
case 5: O << "ne"; break;
case 6: O << "be"; break;
case 7: O << (IsCMPCCXADD ? "nbe" : "a"); break;
case 7: O << "a"; break;
case 8: O << "s"; break;
case 9: O << "ns"; break;
case 0xa: O << (IsCCMPOrCTEST ? "t" : "p"); break;
case 0xb: O << (IsCCMPOrCTEST ? "f" : "np"); break;
case 0xc: O << "l"; break;
case 0xd: O << (IsCMPCCXADD ? "nl" : "ge"); break;
case 0xd: O << "ge"; break;
case 0xe: O << "le"; break;
case 0xf: O << (IsCMPCCXADD ? "nle" : "g"); break;
case 0xf: O << "g"; break;
}
// clang-format on
}
Expand Down
Loading
Loading