Commit Graph

73 Commits

Author SHA1 Message Date
Tom Stellard 0be3acfc70 libclc: implement initial version of min()
This doesn't handle the integer cases for min(vector, scalar).

Patch by: Aaron Watry

llvm-svn: 185001
2013-06-26 18:21:38 +00:00
Tom Stellard 29b5b9816b libclc: Rename [add|sub]_sat.ll to [add|sub]_sat_if.ll
configure.py allows overloading *.cl with *.ll, but will only ever build
the first file listed in SOURCES of ${file}.cl and ${file}.ll

add_sat, sub_sat, (and the soon to be submitted clz) all define interfaces in
${function_name}.ll which are implemented in ${function_name}_impl.ll.

Renaming the interface files is enough to get them to build again, fixing
CL usage of these functions.

Tested on clover/r600g.

Patch by: Aaron Watry

llvm-svn: 185000
2013-06-26 18:21:31 +00:00
Tom Stellard a30713710c Add a another TODO note.
Patch by: Aaron Watry

llvm-svn: 184999
2013-06-26 18:21:25 +00:00
Tom Stellard 4974f6c6d0 Add a TODO note.
Patch by: Aaron Watry

llvm-svn: 184998
2013-06-26 18:21:22 +00:00
Tom Stellard 8c1e72f46a Simplify rotate implementation a bit..
Much more understandable/readable as a result, and probably more efficient.

Patch by: Aaron Watry

llvm-svn: 184997
2013-06-26 18:21:18 +00:00
Tom Stellard 0bb381eaec libclc: implement rotate builtin
This implementation does a lot of bit shifting and masking. Suffice to say,
this is somewhat suboptimal... but it does look to produce correct results
(after the piglit tests were corrected for sign extension issues).

Someone who knows LLVM better than I could re-write this more efficiently.

Patch by: Aaron Watry

llvm-svn: 184996
2013-06-26 18:21:13 +00:00
Tom Stellard cb133c9322 libclc: Move max builtin to shared/
Max(x,y) is available for all integer/floating types.

Patch by: Aaron Watry

llvm-svn: 184995
2013-06-26 18:21:06 +00:00
Tom Stellard fe23a30ef5 libclc: Add clamp() builtin for integer/floating point
Created under a new shared/ directory for functions which are available for
both integer and floating point types.

Patch by: Aaron Watry

llvm-svn: 184994
2013-06-26 18:20:56 +00:00
Tom Stellard cd88a4ebb6 libclc: Fix abs_diff builtin integer function
Patch by: Aaron Watry

llvm-svn: 184993
2013-06-26 18:20:50 +00:00
Tom Stellard ec87fb0b0c libclc: Add max() builtin function
Adds this function for both int and floating data types.

Patch by: Aaron Watry

llvm-svn: 184992
2013-06-26 18:20:46 +00:00
Tom Stellard 509b3b2104 Implement fmax() and fmin() builtins
llvm-svn: 184987
2013-06-26 18:20:25 +00:00
Tom Stellard 99bd71c4f5 Use brackets around include files in length.cl and normalize.cl
These functions were not being compiled

llvm-svn: 184985
2013-06-26 18:20:15 +00:00
Peter Collingbourne bf3fd44b10 Implement any() builtin. Patch by Tom Stellard!
llvm-svn: 165386
2012-10-08 03:39:21 +00:00
Peter Collingbourne 3cd1bcb358 Do not use linkonce_odr linkage in .ll files. This prevented them
from being linked into the library under lazy linkage.

llvm-svn: 161314
2012-08-05 22:25:48 +00:00
Peter Collingbourne a385c53413 PTX: move implementations of work-item and synchronisation functions
to lib, and add header files in generic.  Incorporates a patch by
Tom Stellard!

llvm-svn: 161313
2012-08-05 22:25:37 +00:00
Peter Collingbourne 1e373f07af Implement sub_sat builtin. Patch by Lei Mou!
llvm-svn: 161312
2012-08-05 22:25:12 +00:00
Peter Collingbourne 49b4d8cc65 Fix declarations of __clc_add_sat_*. Patch by Lei Mou!
llvm-svn: 161311
2012-08-05 22:24:36 +00:00
Peter Collingbourne 9acfba3322 Enable cl_khr_fp64 when building the library, and fix several bugs
uncovered when doing so.

llvm-svn: 157617
2012-05-29 13:35:54 +00:00
Peter Collingbourne 0144669d99 Add missing dot.h include.
llvm-svn: 157615
2012-05-29 13:35:45 +00:00
Peter Collingbourne de7227e5bd Add fma, hypot builtins.
llvm-svn: 157613
2012-05-29 13:35:28 +00:00
Peter Collingbourne b7fdecd2ec Implement mad builtin.
llvm-svn: 157599
2012-05-29 00:42:38 +00:00
Peter Collingbourne 3a78a47ace Explicit conversions.
llvm-svn: 157590
2012-05-28 20:42:54 +00:00
Peter Collingbourne d5395fbf03 Initial commit.
llvm-svn: 147756
2012-01-08 22:09:58 +00:00