llvm-project/llvm/test/CodeGen/WebAssembly
Heejin Ahn d20d0648ed [DAGCombiner] Fix a case of 1 in non-splat vector pow2 divisor
Summary:
D42479 (rL329525) enabled SDIV combine for pow2 non-splat vector
dividers. But when there is a 1 in a vector, the instruction sequence to
be generated involves shifting a value by the number of its bit widths,
which is undefined
(c64f4dbfe3/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (L6000-L6006)).

Especially, in architectures that do not support vector instructions,
each of element in a vector will be computed separately using scalar
operations, and then the resulting value will be undef for '1' values
in a vector.

(All 1's vector is fine; only vectors mixed with 1 and others will be
affected.)

Reviewers: RKSimon, jgravelle-google

Subscribers: jfb, dschuff, sbc100, jgravelle-google, llvm-commits

Differential Revision: https://reviews.llvm.org/D46161

llvm-svn: 331092
2018-04-27 22:23:11 +00:00
..
address-offsets.ll
byval.ll
call.ll [WebAssembly] Reapply r319186: "Support bitcasted function addresses with varargs." 2017-12-08 21:27:00 +00:00
cfg-stackify.ll [WebAssembly] Update cfg-stackify.ll to remove the workaround added in r318288. 2017-11-15 21:38:33 +00:00
cfi.ll
comparisons_f32.ll [WebAssembly] Fix test expectations after r324274 2018-02-06 01:21:17 +00:00
comparisons_f64.ll [WebAssembly] Fix test expectations after r324274 2018-02-06 01:21:17 +00:00
comparisons_i32.ll
comparisons_i64.ll
conv-trap.ll [WebAssembly] Fix fptoui lowering bounds 2017-11-29 20:20:11 +00:00
conv.ll [WebAssembly] Fix trapping behavior in fptosi/fptoui. 2017-11-28 01:13:40 +00:00
copysign-casts.ll
cpus.ll
custom-sections.ll [WebAssembly] Allow for the creation of user-defined custom sections 2018-04-05 17:01:39 +00:00
dbgvalue.ll [WebAssembly] Switch to *-wasm as the default target triple. 2018-01-23 16:55:44 +00:00
dead-vreg.ll
divrem-constant.ll
exception.ll [WebAssembly] Add support for exception handling instructions 2017-06-30 00:43:15 +00:00
f16.ll
f32.ll
f64.ll
fast-isel-i24.ll [WebAssembly] Teach fast-isel to gracefully recover from illegal return types. 2018-04-17 20:46:42 +00:00
fast-isel-noreg.ll [WebAssembly] Handle errors better in fast-isel. 2017-11-28 05:36:42 +00:00
fast-isel.ll
frem.ll
func.ll
function-bitcasts-varargs.ll [WebAssembly] Reapply r319186: "Support bitcasted function addresses with varargs." 2017-12-08 21:27:00 +00:00
function-bitcasts.ll [WebAssembly] Reapply r319186: "Support bitcasted function addresses with varargs." 2017-12-08 21:27:00 +00:00
global.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
globl.ll [WebAssembly] Don't emit .import_global for the wasm target. 2017-12-05 17:21:57 +00:00
i32-load-store-alignment.ll [WebAssembly] Add the rest of the atomic loads 2017-10-05 21:18:42 +00:00
i32.ll
i64-load-store-alignment.ll [WebAssembly] Add the rest of the atomic loads 2017-10-05 21:18:42 +00:00
i64.ll
i128-returned.ll [SelectionDAG]: Ignore "returned" in the presence of an implicit sret. 2018-01-30 00:14:40 +00:00
i128.ll
ident.ll
immediates.ll
implicit-def.ll [WebAssembly] Switch to *-wasm as the default target triple. 2018-01-23 16:55:44 +00:00
import-module.ll [WebAssembly] Add mechanisms for specifying an explicit import module name. 2018-02-09 23:13:22 +00:00
indirect-import.ll [wasm] Update two tests for r308025 which causes scheduling changes due 2017-07-15 15:44:36 +00:00
inline-asm-m.ll [WebAssembly] Add a test for inline-asm "m" constraints. 2017-11-08 19:37:24 +00:00
inline-asm.ll [WebAssembly] Revise the strategy for inline asm. 2017-11-08 19:18:08 +00:00
irreducible-cfg.ll
legalize.ll
libcalls.ll [WebAssembly] Fix libcall signature lookup 2018-01-19 17:45:54 +00:00
lit.local.cfg
load-ext-atomic.ll [WebAssembly] Make sign-extension opcodes a distinct feature. 2018-01-19 17:16:24 +00:00
load-ext.ll
load-store-i1.ll
load.ll
lower-em-ehsjlj-options.ll
lower-em-exceptions-whitelist.ll
lower-em-exceptions.ll
lower-em-sjlj.ll
lower-global-dtors.ll [WebAssembly] Implement @llvm.global_ctors and @llvm.global_dtors 2017-12-15 00:17:10 +00:00
main-declaration.ll [WebAssemby] Re-apply r320041: "Support main functions with alternate signatures." 2017-12-08 21:18:21 +00:00
main.ll [WebAssemby] Re-apply r320041: "Support main functions with alternate signatures." 2017-12-08 21:18:21 +00:00
mem-intrinsics.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
memory-addr32.ll [WebAssembly] Add mem.* intrinsics. 2018-01-23 17:02:02 +00:00
negative-base-reg.ll
non-executable-stack.ll
offset-atomics.ll [WebAssembly] Make sign-extension opcodes a distinct feature. 2018-01-19 17:16:24 +00:00
offset-fastisel.ll [WebAssembly] WebAssemblyFastISel getelementptr variable index support 2017-06-22 21:26:08 +00:00
offset-folding.ll
offset.ll
phi.ll
reg-stackify.ll [WebAssembly] Remove infinite loop from reg-stackify test 2017-08-16 00:49:44 +00:00
return-int32.ll
return-void.ll
returned.ll
select.ll
signext-arg.ll [WebAssembly] Switch to *-wasm as the default target triple. 2018-01-23 16:55:44 +00:00
signext-inreg.ll [WebAssembly] Make sign-extension opcodes a distinct feature. 2018-01-19 17:16:24 +00:00
signext-zeroext.ll
simd-arith.ll
stack-alignment.ll [WebAssembly] Remove WASM_STACK_POINTER. 2017-12-06 20:56:40 +00:00
store-trunc.ll
store.ll
switch.ll
tls.ll [WebAssembly] Strip threadlocal attribute from globals in single thread mode 2018-03-20 22:01:32 +00:00
umulo-i64.ll [WebAssembly] Switch to *-wasm as the default target triple. 2018-01-23 16:55:44 +00:00
unreachable.ll
unsupported-function-bitcasts.ll
unused-argument.ll
userstack.ll Revert r308273 to reinstate part of r308100. 2017-07-19 04:15:30 +00:00
varargs.ll
vector_sdiv.ll [DAGCombiner] Fix a case of 1 in non-splat vector pow2 divisor 2018-04-27 22:23:11 +00:00
vtable.ll