forked from OSchip/llvm-project
[PowerPC] Add readflm/setflm intrinsics to Clang
Commit dbcfbffc
adds ppc.readflm and ppc.setflm intrinsics to read or
write FPSCR register. This patch adds them to Clang.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D85874
This commit is contained in:
parent
df9a9bb7be
commit
91039784b3
|
@ -556,6 +556,12 @@ BUILTIN(__builtin_pack_vector_int128, "V1LLLiULLiULLi", "")
|
|||
// Set the floating point rounding mode
|
||||
BUILTIN(__builtin_setrnd, "di", "")
|
||||
|
||||
// Get content from current FPSCR
|
||||
BUILTIN(__builtin_readflm, "d", "")
|
||||
|
||||
// Set content of FPSCR, and return its content before update
|
||||
BUILTIN(__builtin_setflm, "dd", "")
|
||||
|
||||
// Cache built-ins
|
||||
BUILTIN(__builtin_dcbf, "vvC*", "")
|
||||
|
||||
|
|
|
@ -27,3 +27,12 @@ void test_builtin_ppc_setrnd() {
|
|||
// CHECK: call double @llvm.ppc.setrnd(i32 %2)
|
||||
res = __builtin_setrnd(x);
|
||||
}
|
||||
|
||||
void test_builtin_ppc_flm() {
|
||||
volatile double res;
|
||||
// CHECK: call double @llvm.ppc.readflm()
|
||||
res = __builtin_readflm();
|
||||
|
||||
// CHECK: call double @llvm.ppc.setflm(double %1)
|
||||
res = __builtin_setflm(res);
|
||||
}
|
||||
|
|
|
@ -48,9 +48,11 @@ let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.".
|
|||
def int_ppc_eieio : Intrinsic<[],[],[]>;
|
||||
|
||||
// Get content from current FPSCR register
|
||||
def int_ppc_readflm : Intrinsic<[llvm_double_ty], [], [IntrNoMem]>;
|
||||
def int_ppc_readflm : GCCBuiltin<"__builtin_readflm">,
|
||||
Intrinsic<[llvm_double_ty], [], [IntrNoMem]>;
|
||||
// Set FPSCR register, and return previous content
|
||||
def int_ppc_setflm : Intrinsic<[llvm_double_ty], [llvm_double_ty], []>;
|
||||
def int_ppc_setflm : GCCBuiltin<"__builtin_setflm">,
|
||||
Intrinsic<[llvm_double_ty], [llvm_double_ty], []>;
|
||||
|
||||
// Intrinsics for [double]word extended forms of divide instructions
|
||||
def int_ppc_divwe : GCCBuiltin<"__builtin_divwe">,
|
||||
|
|
Loading…
Reference in New Issue