Commit Graph

69 Commits

Author SHA1 Message Date
Anton Mitrokhin
c934a68bc4 changed 'const int' to 'const int8_t' in '__vec16_i8' constructor 2014-10-02 13:00:55 +04:00
Anton Mitrokhin
8295df5a1e fixed header in 'knc.h' 2014-09-25 22:54:29 +04:00
Anton Mitrokhin
4560df284b changed codestyle to 2 spaces in 'knc.h' 2014-09-25 21:29:49 +04:00
Anton Mitrokhin
832aff5d76 commented out '__vec16_i1' type as there is no '__cast_uitofp' which produces compfails 2014-09-25 21:29:49 +04:00
Anton Mitrokhin
46bd353027 fixed 'INT_MIN' bug in '__gather64_i64' 2014-09-25 21:29:49 +04:00
Anton Mitrokhin
1a2979aa7f start fixing gather/scatter functions (INT_MIN fix) 2014-09-25 21:29:49 +04:00
Anton Mitrokhin
8b8e313dc6 starded work on gather/scatter instructions 2014-09-25 21:29:48 +04:00
Anton Mitrokhin
0881463d69 changed '__vec16_i1 __equal_i64(const __vec16_i64 &a, const __vec16_i6_i64 &b, __vec16_i1 mask)' function 2014-09-25 21:29:48 +04:00
Anton Mitrokhin
2e92989101 changed '__vec16_i64 __load(const __vec16_i64 *p)' 2014-09-25 21:29:48 +04:00
Anton Mitrokhin
1d69b954bd added several memory functions for i8 2014-09-25 21:29:48 +04:00
Anton Mitrokhin
90843b3bff changed a constructor of '__vec16_i8' 2014-09-25 21:29:48 +04:00
Anton Mitrokhin
78a7ef9fc5 added several math functions, new runfails: gather-int8-2/4; ldexp-double (previously compfailed) 2014-09-25 21:29:47 +04:00
Anton Mitrokhin
efa0ea01f3 add 'void __masked_store_i64(void *p, const __vec16_i64 &v, __vec16_i1 mask)' function. now 450 compfails and 12 runfails 2014-09-25 21:29:47 +04:00
Anton Mitrokhin
ddf5df6193 made 'int64_t __extract_element(const __vec16_i64 &v, uint32_t index)' function 2014-09-25 21:29:47 +04:00
Anton Mitrokhin
4fff0ab571 added __vec16_i32 __cast_trunc(__vec16_i32, const __vec16_i64 i64) function. ptr-diff-3/5/6 tests are apparently runfailing because of it 2014-09-25 21:29:47 +04:00
Anton Mitrokhin
85b703981d added several helper functions 2014-09-25 21:29:46 +04:00
Anton Mitrokhin
45114d3283 No actual code change: changed the code style for '__vec16_i8' struct in 'knc.h' 2014-09-25 21:29:46 +04:00
Anton Mitrokhin
723baca4c2 added several useful defines and a warning that '__vec16_i1' might not be working with embree 2014-09-25 21:29:46 +04:00
Vsevolod Livinskiy
0a5b16dbe6 some minor fixes for knc.h 2014-09-25 21:29:46 +04:00
Vsevolod Livinskiy
57f29e5035 Fix to support icc v.15 beta 2014-08-26 15:20:10 +04:00
Anton Mitrokhin
bd8d02527b removed ugly INT32_MIN define (included limits.h) and updated the copyright 2014-08-15 16:18:29 +04:00
Anton Mitrokhin
7adacf5a7b 64 bit gather/scatter fix for knc.h 2014-08-15 16:04:31 +04:00
jbrodman
fbb34b3f3a Merge pull request #747 from dbabokin/knc_extract_element
Knc.h fix
2014-02-27 10:51:17 -08:00
Dmitry Babokin
f0a7baf340 Remove conflicting __extract_element(__vec16_i64 ..., ...) 2014-02-22 01:10:55 +04:00
evghenii
8490efe0ad fix for knc.h. Due to a bug in ICC (tested with 13.1.3 & 14.0.1) ,the resulting .cpp file fails to compile 2014-02-07 16:00:21 +01:00
evghenii
438cee4e21 added support for double precision/native transendentals/trigonometry 2014-02-07 15:43:42 +01:00
evghenii
c59cff396d added {rsqrt,rcp}d support for knc.h. test-147.ispc & test-148.ispc pass. 2014-02-05 13:55:38 +01:00
Evghenii
eb01ffd4e6 first commit for {rsqrt,rcp}d knc support. going to test on other node now 2014-02-05 13:43:07 +01:00
james.brodman
9f933b500b Add missing __cast_sext(__vec16_i32,__vec16_i1) 2013-12-20 16:45:27 -05:00
Ilia Filippov
15816eb07e adding __packed_store_active2 to generic targets 2013-12-19 17:50:18 +04:00
Matt Pharr
e7f067d70c Fix handling of __clock() builtin for "generic" targets. 2013-08-20 09:04:52 -07:00
Matt Pharr
b6df447b55 Add reduce_add() for int8 and int16 types.
This maps to specialized instructions (e.g. PSADBW) when available.
2013-07-25 09:46:01 -07:00
james.brodman
6211966c55 Change mask to use __mmask16 instead of a struct. 2013-05-30 16:04:44 -04:00
james.brodman
7b2eaf63af knc.h cleanup 2013-05-10 13:36:18 -04:00
james.brodman
52dcbf087a Implemented 3 more intrinsics on double precision vectors 2013-03-28 11:55:53 -04:00
Jean-Luc Duprat
24087ff3cc Expose none() in the ISPC standard library.
On KNC: all(), any() and none() do not generate a redundant movmsk instruction.
2012-11-27 13:38:28 -08:00
Jean-Luc Duprat
2129b1e27d knc.h: Fixed __rsqrt_varying_float() to use _mm512_invsqrt_ps() instead of _mm512_invsqrt_pd()
This was a typo.
2012-11-21 15:40:35 -08:00
Jean-Luc Duprat
d3b86dcc90 KNC: fix implementation of __all() to use KNCni mask test instructions... 2012-11-14 09:24:01 -08:00
Jean-Luc Duprat
b601331362 Approximation for inverse sqrt and reciprocal provided in fast math mode.
RCP was actually slow in fast math mode
   Inverse sqrt did not expose fast approximation
2012-11-13 14:01:35 -08:00
james.brodman
97ddc1ed10 Fixed =/== error in __all() 2012-11-08 16:30:12 -05:00
Matt Pharr
406fbab40e Fix bugs in declarations of __any, __all, and __none in examples/intrinsics.
They return bool, not vector of bool.
2012-10-17 10:55:50 -07:00
Jean-Luc Duprat
3dd9ff3d84 knc.h:
Properly pick up on ISPC_FORCE_ALIGNED_MEMORY when --opt=force-aligned-memory is used
	Fixed usage of loadunpack and packstore to use proper memory offset
	Fixed implementation of __masked_load_*() __masked_store_*() incorrectly (un)packing the lanes loaded
	Cleaned up usage of _mm512_undefined_*(), it is now mostly confined to constructor
	Minor cleanups

knc2x.h
	Fixed usage of loadunpack and packstore to use proper memory offset
	Fixed implementation of __masked_load_*() __masked_store_*() incorrectly (un)packing the lanes loaded
	Properly pick up on ISPC_FORCE_ALIGNED_MEMORY when --opt=force-aligned-memory is used
	__any() and __none() speedups.
	Cleaned up usage of _mm512_undefined_*(), it is now mostly confined to constructor
2012-09-19 17:11:04 -07:00
Ingo Wald
7f386923b0 Merge branch 'master' of https://github.com/ispc/ispc 2012-09-17 15:54:25 +02:00
Ingo Wald
d2312b1fbd now using the ASSUME_ALIGNED flag in knc.h 2012-09-17 15:54:00 +02:00
Ingo Wald
6655373ac3 commit test 2012-09-17 15:51:37 +02:00
Ingo Wald
d492af7bc0 64-bit gather/scatter, aligned load/store, i8 support 2012-09-17 03:39:02 +02:00
Jean-Luc Duprat
0e88d5f97f Fixed unaligned masked stores on KNC 2012-09-14 14:11:41 -07:00
Jean-Luc Duprat
f0b0618484 Added the following mask tests: __any(), __all(), __none() for all supported targets.
This allows for more efficient code generation of KNC.
2012-09-14 11:06:18 -07:00
Jean-Luc Duprat
11db466a88 Implement the KNC prefetch API so that ISPC prefetch_*() stdlib functions may be used. 2012-08-30 10:24:31 -07:00
Jean-Luc Duprat
8a22c63889 knc2x.h
Introduced knc2x.h which supprts 2x interleaved code generation for KNC (use the target generic-32).
This implementation is even more experimental and incomplete than knc.h but is useful already (mandelbrot works for example)

knc.h:
Switch to new intrinsic names _mm512_set_1to16_epi32() -> _mm512_set1_epi32(), etc...
Fix the declaration of the unspecialized template for __smear_*(), __setzero_*(), __undef_*()
Specifically mark _mm512_undefined_*() a few vectors in __load<>()
Fixed implementations of some implementations of __smear_*(), __setzero_*(), __undef_*() to remove unecessary dependent instructions.
Implemented ISPC reductions by simply calling existing intrinsic reductions, which are slightly more efficient than our precendent implementation.  Also added reductions for double types.
2012-08-15 17:41:10 -07:00