Connor Abbott
bd73b89792
radeonsi: move si_emit_ballot() to ac
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-09-08 04:12:42 +01:00
Connor Abbott
ac27fa7294
radeonsi: move emit_optimization_barrier() to ac
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-09-08 04:06:47 +01:00
Connor Abbott
c181d4f2b7
radeonsi: move llvm_get_type_size() to ac
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-09-08 04:04:16 +01:00
Dave Airlie
cb6f16dce9
radeon/ac: use ds_swizzle for derivs on si/cik.
...
This looks like it's supported since llvm 3.9 at least,
so switch over radeonsi and radv to using it, -pro also
uses this. We can now drop creating lds for these operations
as the ds_swizzle operation doesn't actually write to lds at all.
Acked-by: Marek Olšák <marek.olsak@amd.com >
(stable requested due to fixing radv CIK conformance tests)
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-08-02 00:12:01 +01:00
Nicolai Hähnle
a69afb68c9
radeonsi: use new function ac_build_umin for edgeflag clamping
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2017-07-31 14:55:42 +02:00
Nicolai Hähnle
ac2ab5acad
ac/nir: add always_vector argument to ac_build_gather_values_extended
...
This simplifies a bunch of places that no longer need special treatment
of value_count == 1. We rely on LLVM to optimize away the 1-element vector
types.
This fixes a bunch of bugs where 1-element arrays are indexed indirectly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2017-07-31 14:55:42 +02:00
Dave Airlie
ff422500cc
ac/nir: remove last remnants of v16i8
...
llvm doesn't need this workaround anymore.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-06-28 20:22:30 +01:00
Nicolai Hähnle
edfd3be77e
ac: add ac_llvm_context::v8i32
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-06-27 10:28:29 +10:00
Nicolai Hähnle
331a574732
ac: add ac_llvm_context::{i,f}32_{0,1}
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-06-27 10:28:29 +10:00
Nicolai Hähnle
7bf8c944dc
ac: add ac_llvm_context::{i16, i64, f16, f64}
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-06-27 10:28:29 +10:00
Marek Olšák
e019ea8f4b
radeonsi: move building llvm.SI.load.const into ac_build_buffer_load
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
2017-05-29 01:52:16 +02:00
Marek Olšák
e1942c970f
radeonsi: rename readonly_memory -> can_speculate
...
This is more accurate.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
2017-05-29 01:52:16 +02:00
Marek Olšák
7647e90b15
ac: rename ac_eliminate_const_vs_outputs -> ac_optimize_vs_outputs
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
2017-05-03 20:55:00 +02:00
Dave Airlie
e2659176ce
radeonsi/ac: move vertex export remove to common code.
...
This code can be shared by radv, we bump the max to
VARYING_SLOT_MAX here, but that shouldn't have too
much fallout.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-04-27 05:17:47 +01:00
Dave Airlie
10ae83a9c2
radeonsi/ac: move get_image_intr_name to common
...
This code is used in radv, so move to common build code.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-03-07 08:17:03 +10:00
Marek Olšák
7f1446a8a1
ac: normalize build helper names
...
s/emit/build/
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 17:30:07 +01:00
Marek Olšák
94811dc66c
radeonsi: move SI.vs.load.input building into amd/common
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 17:30:07 +01:00
Marek Olšák
97e21cfa25
ac: replace llvm.SI.tbuffer.store with llvm.amdgcn.buffer.store if ADD_TID=0
...
ADD_TID doesn't work. Needs more investigation.
v2: remove leftover dead code
Reviewed-by: Dave Airlie <airlied@redhat.com > (v1)
2017-03-03 15:29:30 +01:00
Marek Olšák
8cfdbba6c7
ac: remove offen parameter from ac_build_buffer_store_dword
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
27439dfdae
radeonsi: merge and simplify tbuffer_store functions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
d4324ddb89
radeonsi: replace AMDGPU.bfe.* with amdgcn.*bfe
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
9c09592086
radeonsi: move kill intrinsic building into amd/common
...
just a cleanup
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
e729dc7c46
radeonsi: set readnone on reads from read-only memory
2017-03-03 15:29:30 +01:00
Marek Olšák
653ac0b389
radeonsi: replace SI.packf16 with amdgcn.cvt.pkrtz
2017-03-03 15:29:30 +01:00
Marek Olšák
ad18d7f040
radeonsi: move image intrinsic building to amd/common
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
369f4a8726
radeonsi: move llvm.SI.export building to amd/common
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
9af03318aa
ac: unify build_type_name_for_intr functions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-03-03 15:29:30 +01:00
Marek Olšák
660b55e6d9
radeonsi: stop using TGSI_OPCODE_CLAMP by moving it amd/common
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
2017-02-18 02:58:43 +01:00
Dave Airlie
0ec66b9969
radeon/ac: add emit umsb shared code.
...
Since we shared imsb, makes sense to share umsb.
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-16 22:57:16 +00:00
Dave Airlie
cae1ff1a4b
radeon/ac: add ac_emit_imsb helper.
...
We want to use a different intrinsic on newer llvm, so move this
code to a shared area.
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-16 22:57:15 +00:00
Dave Airlie
f32955be43
radeon/ac/llvm: add support for sendmsg emission
...
This lets us use the new intrinsic on the correct
version of llvm.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-14 00:02:50 +00:00
Dave Airlie
13a28ff236
radeon/ac: move common llvm build functions to a separate file.
...
Suggested by Marek.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com >
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-02-07 05:46:35 +10:00