-
Notifications
You must be signed in to change notification settings - Fork 787
[SYCL-PTX] Refactor of libclc sources in preparation of math builtins implementation #1958
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
bader
merged 1 commit into
intel:sycl
from
codeplaysoftware:victor/spirv-ptx-math-refactoring
Jun 24, 2020
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
// See https://llvm.org/LICENSE.txt for license information. | ||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef __CLC_MATH_H_ | ||
#define __CLC_MATH_H_ | ||
|
||
#include "as_type.h" | ||
#include "config.h" | ||
#include "func.h" | ||
|
||
#define SNAN 0x001 | ||
#define QNAN 0x002 | ||
#define NINF 0x004 | ||
#define NNOR 0x008 | ||
#define NSUB 0x010 | ||
#define NZER 0x020 | ||
#define PZER 0x040 | ||
#define PSUB 0x080 | ||
#define PNOR 0x100 | ||
#define PINF 0x200 | ||
|
||
#if (defined __AMDGCN__ || defined __R600__) && !defined __HAS_FMAF__ | ||
#define HAVE_HW_FMA32() (0) | ||
#else | ||
#define HAVE_HW_FMA32() (1) | ||
#endif | ||
|
||
#define HAVE_BITALIGN() (0) | ||
#define HAVE_FAST_FMA32() (0) | ||
|
||
#define MATH_DIVIDE(X, Y) ((X) / (Y)) | ||
#define MATH_RECIP(X) (1.0f / (X)) | ||
#define MATH_SQRT(X) __spirv_ocl_sqrt(X) | ||
|
||
#define SIGNBIT_SP32 0x80000000 | ||
#define EXSIGNBIT_SP32 0x7fffffff | ||
#define EXPBITS_SP32 0x7f800000 | ||
#define MANTBITS_SP32 0x007fffff | ||
#define ONEEXPBITS_SP32 0x3f800000 | ||
#define TWOEXPBITS_SP32 0x40000000 | ||
#define HALFEXPBITS_SP32 0x3f000000 | ||
#define IMPBIT_SP32 0x00800000 | ||
#define QNANBITPATT_SP32 0x7fc00000 | ||
#define INDEFBITPATT_SP32 0xffc00000 | ||
#define PINFBITPATT_SP32 0x7f800000 | ||
#define NINFBITPATT_SP32 0xff800000 | ||
#define EXPBIAS_SP32 127 | ||
#define EXPSHIFTBITS_SP32 23 | ||
#define BIASEDEMIN_SP32 1 | ||
#define EMIN_SP32 -126 | ||
#define BIASEDEMAX_SP32 254 | ||
#define EMAX_SP32 127 | ||
#define LAMBDA_SP32 1.0e30 | ||
#define MANTLENGTH_SP32 24 | ||
#define BASEDIGITS_SP32 7 | ||
|
||
_CLC_OVERLOAD _CLC_INLINE float __clc_flush_denormal_if_not_supported(float x) { | ||
int ix = as_int(x); | ||
if (!__clc_fp32_subnormals_supported() && ((ix & EXPBITS_SP32) == 0) && | ||
((ix & MANTBITS_SP32) != 0)) { | ||
ix &= SIGNBIT_SP32; | ||
x = as_float(ix); | ||
} | ||
return x; | ||
} | ||
|
||
#ifdef cl_khr_fp64 | ||
|
||
#define SIGNBIT_DP64 0x8000000000000000L | ||
#define EXSIGNBIT_DP64 0x7fffffffffffffffL | ||
#define EXPBITS_DP64 0x7ff0000000000000L | ||
#define MANTBITS_DP64 0x000fffffffffffffL | ||
#define ONEEXPBITS_DP64 0x3ff0000000000000L | ||
#define TWOEXPBITS_DP64 0x4000000000000000L | ||
#define HALFEXPBITS_DP64 0x3fe0000000000000L | ||
#define IMPBIT_DP64 0x0010000000000000L | ||
#define QNANBITPATT_DP64 0x7ff8000000000000L | ||
#define INDEFBITPATT_DP64 0xfff8000000000000L | ||
#define PINFBITPATT_DP64 0x7ff0000000000000L | ||
#define NINFBITPATT_DP64 0xfff0000000000000L | ||
#define EXPBIAS_DP64 1023 | ||
#define EXPSHIFTBITS_DP64 52 | ||
#define BIASEDEMIN_DP64 1 | ||
#define EMIN_DP64 -1022 | ||
#define BIASEDEMAX_DP64 2046 /* 0x7fe */ | ||
#define EMAX_DP64 1023 /* 0x3ff */ | ||
#define LAMBDA_DP64 1.0e300 | ||
#define MANTLENGTH_DP64 53 | ||
#define BASEDIGITS_DP64 15 | ||
|
||
#endif // cl_khr_fp64 | ||
|
||
#define ALIGNED(x) __attribute__((aligned(x))) | ||
#endif // __CLC_MATH_H_ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../include/clcmacro.h |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.