
1. The PR proceeds with a backend target hook to allow front-ends to determine what target features are available in a compilation based on the CPU name. 2. Fix a backend target feature bug that supports HTM for Power8/9/10/11. However, HTM is only supported on Power8/9 according to the ISA. 3. All target features that are hardcoded in PPC.cpp can be retrieved from the backend target feature. I have double-checked that the hardcoded logic for inferring target features from the CPU in the frontend(PPC.cpp) is the same as in PPC.td. The reland patch addressed the comment https://github.com/llvm/llvm-project/pull/137670#discussion_r2143541120
109 lines
5.6 KiB
C++
109 lines
5.6 KiB
C++
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr10 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr10 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr9 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr9 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr8 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr8 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr7 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -mcpu=pwr7 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr10 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr10 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr9 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr9 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr8 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr8 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr7 \
|
|
// RUN: -mcrbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s
|
|
// RUN: %clang -target powerpc-ibm-aix %s -### -mcpu=pwr7 \
|
|
// RUN: -mno-crbits -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOCRBITS %s
|
|
|
|
|
|
// CHECK-NOCRBITS: "-target-feature" "-crbits"
|
|
// CHECK-CRBITS: "-target-feature" "+crbits"
|
|
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr10 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr9 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr9 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr9 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr8 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr7 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc64le-unknown-linux-gnu -mcpu=pwr7 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr10 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr10 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr10 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr9 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr9 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr9 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr8 -emit-llvm \
|
|
// RUN: -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr8 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr8 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr7 -mcrbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-CRBITS
|
|
// RUN: %clang -target powerpc-ibm-aix -mcpu=pwr7 -mno-crbits \
|
|
// RUN: -emit-llvm -S %s -o - | FileCheck %s --check-prefix=HAS-NOCRBITS
|
|
|
|
|
|
// HAS-CRBITS: main(
|
|
// HAS-CRBITS: attributes #0 = {
|
|
// HAS-CRBITS-SAME: +crbits
|
|
// HAS-NOCRBITS: main(
|
|
// HAS-NOCRBITS: attributes #0 = {
|
|
// HAS-NOCRBITS-SAME: -crbits
|
|
|
|
int main(int argc, char *argv[]) {
|
|
return 0;
|
|
}
|