llvm-project/clang/test/CodeGen/builtins-ppc-p10.c
Amy Kwan e0c02dc980 [PowerPC][Power10] Implement centrifuge, vector gather every nth bit, vector evaluate Builtins in LLVM/Clang
This patch implements builtins for the following prototypes:

unsigned long long __builtin_cfuged (unsigned long long, unsigned long long);
vector unsigned long long vec_cfuge (vector unsigned long long, vector unsigned long long);
unsigned long long vec_gnb (vector unsigned __int128, const unsigned int);
vector unsigned char vec_ternarylogic (vector unsigned char, vector unsigned char, vector unsigned char, const unsigned int);
vector unsigned short vec_ternarylogic (vector unsigned short, vector unsigned short, vector unsigned short, const unsigned int);
vector unsigned int vec_ternarylogic (vector unsigned int, vector unsigned int, vector unsigned int, const unsigned int);
vector unsigned long long vec_ternarylogic (vector unsigned long long, vector unsigned long long, vector unsigned long long, const unsigned int);
vector unsigned __int128 vec_ternarylogic (vector unsigned __int128, vector unsigned __int128, vector unsigned __int128, const unsigned int);

Differential Revision: https://reviews.llvm.org/D80970
2020-06-25 21:34:41 -05:00

31 lines
736 B
C

// REQUIRES: powerpc-registered-target
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-cpu pwr10 \
// RUN: -emit-llvm %s -o - | FileCheck %s
unsigned long long ulla, ullb;
unsigned long long test_pdepd(void) {
// CHECK: @llvm.ppc.pdepd
return __builtin_pdepd(ulla, ullb);
}
unsigned long long test_pextd(void) {
// CHECK: @llvm.ppc.pextd
return __builtin_pextd(ulla, ullb);
}
unsigned long long test_cfuged(void) {
// CHECK: @llvm.ppc.cfuged
return __builtin_cfuged(ulla, ullb);
}
unsigned long long test_cntlzdm(void) {
// CHECK: @llvm.ppc.cntlzdm
return __builtin_cntlzdm(ulla, ullb);
}
unsigned long long test_cnttzdm(void) {
// CHECK: @llvm.ppc.cnttzdm
return __builtin_cnttzdm(ulla, ullb);
}