mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 15:48:36 +02:00
gallivm: don't use integer min/max sse intrinsics with llvm >= 3.9
Apparently, these are deprecated. There's some AutoUpgrade feature which is supposed to promote these to cmp/select, which apparently doesn't work with jit code. It is possible it's not actually even meant to work (see the bug filed against llvm which couldn't provide an answer neither) but in any case this is meant to be only temporary unless the intrinsics are really illegal. So, just use the fallback code (which should be cmp/select, we're actually doing cmp/sext/trunc/select, but in any case llvm 3.9 manages to optimize this back to pmin/pmax in the end). This addresses https://llvm.org/bugs/show_bug.cgi?id=28176 CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Tested-by: Vinson Lee <vlee@freedesktop.org> Tested-by: Aaron Watry <awatry@gmail.com>
This commit is contained in:
parent
154c0a42a2
commit
b0cf99165a
1 changed files with 4 additions and 2 deletions
|
|
@ -142,7 +142,8 @@ lp_build_min_simple(struct lp_build_context *bld,
|
|||
intrinsic = "llvm.ppc.altivec.vminfp";
|
||||
intr_size = 128;
|
||||
}
|
||||
} else if (util_cpu_caps.has_sse2 && type.length >= 2) {
|
||||
} else if (HAVE_LLVM < 0x0309 &&
|
||||
util_cpu_caps.has_sse2 && type.length >= 2) {
|
||||
intr_size = 128;
|
||||
if ((type.width == 8 || type.width == 16) &&
|
||||
(type.width * type.length <= 64) &&
|
||||
|
|
@ -345,7 +346,8 @@ lp_build_max_simple(struct lp_build_context *bld,
|
|||
intrinsic = "llvm.ppc.altivec.vmaxfp";
|
||||
intr_size = 128;
|
||||
}
|
||||
} else if (util_cpu_caps.has_sse2 && type.length >= 2) {
|
||||
} else if (HAVE_LLVM < 0x0309 &&
|
||||
util_cpu_caps.has_sse2 && type.length >= 2) {
|
||||
intr_size = 128;
|
||||
if ((type.width == 8 || type.width == 16) &&
|
||||
(type.width * type.length <= 64) &&
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue