Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-12 Thread Marek Olšák
It seems overkill to use LLVM IR for BFE. There are several ways to express BFE(value, offset, bits) exactly, for example: # if bits == 0: # 0 # else if offset + bits < 32: # (value << (32 - offset - bits)) >> (32 - bits) # else: # value >> offset Which can be simplified to either: #

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-11 Thread Marek Olšák
On Wed, Mar 11, 2015 at 2:54 AM, Tom Stellard wrote: > On Wed, Mar 11, 2015 at 01:27:32AM +0100, Marek Olšák wrote: >> On Wed, Mar 11, 2015 at 12:09 AM, Tom Stellard wrote: >> > On Tue, Mar 10, 2015 at 11:01:21PM +0100, Marek Olšák wrote: >> >> I've looked into how to recognize BFM and BFI and di

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Tom Stellard
On Wed, Mar 11, 2015 at 01:27:32AM +0100, Marek Olšák wrote: > On Wed, Mar 11, 2015 at 12:09 AM, Tom Stellard wrote: > > On Tue, Mar 10, 2015 at 11:01:21PM +0100, Marek Olšák wrote: > >> I've looked into how to recognize BFM and BFI and discovered that if > >> TGSI_OPCODE_BFI is expanded, it's _im

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Marek Olšák
On Wed, Mar 11, 2015 at 12:09 AM, Tom Stellard wrote: > On Tue, Mar 10, 2015 at 11:01:21PM +0100, Marek Olšák wrote: >> I've looked into how to recognize BFM and BFI and discovered that if >> TGSI_OPCODE_BFI is expanded, it's _impossible_ to recognize the >> pattern in the backend due to LLVM tran

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Tom Stellard
On Tue, Mar 10, 2015 at 11:01:21PM +0100, Marek Olšák wrote: > I've looked into how to recognize BFM and BFI and discovered that if > TGSI_OPCODE_BFI is expanded, it's _impossible_ to recognize the > pattern in the backend due to LLVM transformations. The reason it's > impossible is that one partic

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Marek Olšák
I've looked into how to recognize BFM and BFI and discovered that if TGSI_OPCODE_BFI is expanded, it's _impossible_ to recognize the pattern in the backend due to LLVM transformations. The reason it's impossible is that one particular simplification of the expanded IR can always be done and it alwa

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Tom Stellard
On Tue, Mar 10, 2015 at 12:42:38PM +0100, Marek Olšák wrote: > OK. What about patches 8 an 9? > I think the intrinsics in 9 are OK, but 8 should be using LLVM IR. -Tom > Marek > > On Thu, Mar 5, 2015 at 8:30 PM, Tom Stellard wrote: > > On Mon, Mar 02, 2015 at 12:54:21PM +0100, Marek Olšák wro

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-10 Thread Marek Olšák
OK. What about patches 8 an 9? Marek On Thu, Mar 5, 2015 at 8:30 PM, Tom Stellard wrote: > On Mon, Mar 02, 2015 at 12:54:21PM +0100, Marek Olšák wrote: >> From: Marek Olšák >> > > Hi Marek, > > After discussing with Matt, I think we should use LLVM IR rather than > intrinsics for IBFE and UBFE

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-05 Thread Tom Stellard
On Mon, Mar 02, 2015 at 12:54:21PM +0100, Marek Olšák wrote: > From: Marek Olšák > Hi Marek, After discussing with Matt, I think we should use LLVM IR rather than intrinsics for IBFE and UBFE and then add patterns for them either in the TableGen Files or AMDGPUISelDAGToDAG.cpp. Using intrinsic

Re: [Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-05 Thread Tom Stellard
On Mon, Mar 02, 2015 at 12:54:21PM +0100, Marek Olšák wrote: > From: Marek Olšák > I'm still unsure whether it's better to use intrinsics or LLVM IR to implement these. I will think about this some more. -Tom > --- > src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 8 > 1 file

[Mesa-dev] [PATCH 7/9] radeonsi: add support for easy opcodes from ARB_gpu_shader5

2015-03-02 Thread Marek Olšák
From: Marek Olšák --- src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 8 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c index 385d3ad..034095f 100644 --- a/src/gallium/drivers