16 Commits

Author SHA1 Message Date
Dmitry Babokin
8e47273186 Copyright refresh 2015-04-22 16:39:11 +03:00
Vsevolod Livinskiy
f92d351cf0 Some codestyle changes 2015-03-05 18:04:39 +03:00
Vsevolod Livinskiy
a216b2bb9c New LLVM IR load instruction 2015-03-05 16:00:30 +03:00
Evghenii
4641a15287 Merge branch 'master' into nvptx 2014-03-19 10:53:07 +01:00
Dmitry Babokin
31b95b665b Copyright update 2014-03-12 20:19:16 +04:00
Ilia Filippov
6738af0a0c changing uniform_min and uniform_max implementations for avx targets 2014-03-06 12:05:24 +04:00
Evghenii
a8a2cf9bdb change nvptx64->nvptx 2014-01-06 14:04:27 +01:00
evghenii
bb46b561fd Merged with upstream/master 2013-11-22 08:13:16 +01:00
Evghenii
f1fc3bdfba added nvptx declaration to other target & fixed nvptx64 recognition 2013-11-14 20:12:58 +01:00
Dmitry Babokin
d2c7b356cc Ordering functions in target-[avx|sse2].ll to be in the same order. No real changes, except adding a few alwaysinline in SSE4 target 2013-11-14 15:34:30 +04:00
Dmitry Babokin
af58955140 target-[sse4|avx]_common.ll are twin brothers, which diffes only cosmetically. This commit makes them diffable. No real changes, except adding alwaysinline to sse version iof __max_uniform_int32/__max_uniform_uint32 2013-11-14 15:34:30 +04:00
Evghenii
68ced6ce46 automatically adds -D__NVPTX__ when nvptx64 target is chosen 2013-10-28 14:08:32 +01:00
Matt Pharr
5b20b06bd9 Add avg_{up,down}_int{8,16} routines to stdlib
These compute the average of two given values, rounding up and down,
respectively, if the result isn't exact.  When possible, these are
mapped to target-specific intrinsics (PADD[BW] on IA and VH[R]ADD[US]
on NEON.)

A subsequent commit will add pattern-matching to generate calls to
these intrinsincs when the corresponding patterns are detected in the
IR.)
2013-08-06 08:41:12 -07:00
Matt Pharr
49dde7c6f2 Fix bug in declaration of double-precision sqrt intrinsic for AVX targets.
This was preventing sqrts of uniform double values from being compiled
properly.

Issue #344.
2012-08-03 11:43:31 -07:00
Matt Pharr
f75c94a8f1 Have aos/soa and broadcast/shuffle/rotate functions provided by the target.
The SSE/AVX targets use the old versions from util.m4, but these functions are
now passed through to the generic targets.
2012-01-04 12:59:03 -08:00
Matt Pharr
1d9201fe3d Add "generic" 4, 8, and 16-wide targets.
When used, these targets end up with calls to undefined functions for all
of the various special vector stuff ispc needs to compile ispc programs
(masked store, gather, min/max, sqrt, etc.).

These targets are not yet useful for anything, but are a step toward
having an option to C++ code with calls out to intrinsics.

Reorganized the directory structure a bit and put the LLVM bitcode used
to define target-specific stuff (as well as some generic built-ins stuff)
into a builtins/ directory.

Note that for building on Windows, it's now necessary to set a LLVM_VERSION
environment variable (with values like LLVM_2_9, LLVM_3_0, LLVM_3_1svn, etc.)
2011-12-19 13:46:50 -08:00