gcc/libgomp
Martin Jambor 191411e43a [PR 82416] Do not extend operands to at least 32 bits
2017-10-09  Martin Jambor  <mjambor@suse.cz>

	PR hsa/82416
gcc/
	* hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
	* hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
	(hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
	COMPLEX types.
	(hsa_fixup_mov_insn_type): New function.
	(hsa_op_with_type::get_in_type): Use it.
	(hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
	immediates in an assert.
	(hsa_op_with_type::extend_int_to_32bit): New method.
	(gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
	types.  Convert to dest type if necessary.
	(gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
	(reg_for_gimple_ssa): Pass false as min32int to
	hsa_type_for_scalar_tree_type.
	(gen_hsa_addr): Fixup type when creating addresable temporary.
	(gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
	(gen_hsa_unary_operation): Extend operands and convert to dest type if
	necessary.  Call hsa_fixup_mov_insn_type.
	(gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
	extend operands and convert to dest type if necessary.
	(gen_hsa_insns_for_operation_assignment): Extend operands and convert
	to dest type if necessary.
	(set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
	if conversion nt necessary and size matches.
	(gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
	to dest type if necessary.
	(gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
	(gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
	necessary.
	(gen_hsa_clrsb): Likewise.
	(gen_hsa_ffs): Likewise.
	(gen_hsa_divmod): Extend operands and convert to dest type if
	necessary.
	(gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.

libgomp/
	* testsuite/libgomp.hsa.c/pr82416.c: New test.

From-SVN: r253538
2017-10-09 11:41:44 +02:00
..
config re PR libgomp/80822 (libgomp incorrect affinity when OMP_PLACES=threads) 2017-05-30 14:05:30 +02:00
plugin Fix secure_getenv.h include in plugin-hsa.c 2017-07-03 13:40:19 +00:00
testsuite [PR 82416] Do not extend operands to at least 32 bits 2017-10-09 11:41:44 +02:00
ChangeLog [PR 82416] Do not extend operands to at least 32 bits 2017-10-09 11:41:44 +02:00
ChangeLog.graphite
Makefile.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
acinclude.m4
aclocal.m4 libgomp: regenerate with automake-1.11.6 2016-11-30 21:05:33 +03:00
affinity.c Update copyright years. 2017-01-01 13:07:43 +01:00
alloc.c Update copyright years. 2017-01-01 13:07:43 +01:00
atomic.c Update copyright years. 2017-01-01 13:07:43 +01:00
barrier.c Update copyright years. 2017-01-01 13:07:43 +01:00
config.h.in configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. 2017-01-17 10:44:17 +01:00
configure configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. 2017-01-17 10:44:17 +01:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.tgt re PR bootstrap/80531 (RC1 bootstrap comparison failure) 2017-04-27 22:03:01 +02:00
critical.c Update copyright years. 2017-01-01 13:07:43 +01:00
env.c Use secure_getenv for GOMP_DEBUG 2017-06-27 15:51:37 +00:00
error.c Update copyright years. 2017-01-01 13:07:43 +01:00
fortran.c Update copyright years. 2017-01-01 13:07:43 +01:00
hashtab.h Update copyright years. 2017-01-01 13:07:43 +01:00
icv-device.c Update copyright years. 2017-01-01 13:07:43 +01:00
icv.c Update copyright years. 2017-01-01 13:07:43 +01:00
iter.c Update copyright years. 2017-01-01 13:07:43 +01:00
iter_ull.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp-plugin.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp-plugin.h libgomp: Normalize the names of a few functions of the libgomp plugin API 2017-02-02 15:13:57 +01:00
libgomp.h C/C++ OpenACC: acc_pcopyin, acc_pcreate 2017-05-24 15:23:34 +02:00
libgomp.map OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all 2017-05-24 15:25:01 +02:00
libgomp.spec.in Generally link to libgomp for -ftree-parallelize-loops=*. 2013-11-07 16:07:34 +01:00
libgomp.texi libgomp.texi (Top): www.openacc.org now uses https. 2017-09-08 12:27:14 +00:00
libgomp_f.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp_g.h Update copyright years. 2017-01-01 13:07:43 +01:00
lock.c Update copyright years. 2017-01-01 13:07:43 +01:00
loop.c Update copyright years. 2017-01-01 13:07:43 +01:00
loop_ull.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-async.c OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all 2017-05-24 15:25:01 +02:00
oacc-cuda.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-host.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-init.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-int.h Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-mem.c C/C++ OpenACC: acc_pcopyin, acc_pcreate 2017-05-24 15:23:34 +02:00
oacc-parallel.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-plugin.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-plugin.h Update copyright years. 2017-01-01 13:07:43 +01:00
omp.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
omp_lib.f90.in Update copyright years. 2017-01-01 13:07:43 +01:00
omp_lib.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
openacc.f90 OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all 2017-05-24 15:25:01 +02:00
openacc.h OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all 2017-05-24 15:25:01 +02:00
openacc_lib.h OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all 2017-05-24 15:25:01 +02:00
ordered.c Update copyright years. 2017-01-01 13:07:43 +01:00
parallel.c Update copyright years. 2017-01-01 13:07:43 +01:00
priority_queue.c Update copyright years. 2017-01-01 13:07:43 +01:00
priority_queue.h Update copyright years. 2017-01-01 13:07:43 +01:00
sections.c Update copyright years. 2017-01-01 13:07:43 +01:00
secure_getenv.h Use secure_getenv for GOMP_DEBUG 2017-06-27 15:51:37 +00:00
single.c Update copyright years. 2017-01-01 13:07:43 +01:00
splay-tree.c Update copyright years. 2017-01-01 13:07:43 +01:00
splay-tree.h Update copyright years. 2017-01-01 13:07:43 +01:00
target.c libgomp: Normalize the names of a few functions of the libgomp plugin API 2017-02-02 15:13:57 +01:00
task.c Update copyright years. 2017-01-01 13:07:43 +01:00
taskloop.c Update copyright years. 2017-01-01 13:07:43 +01:00
team.c Update copyright years. 2017-01-01 13:07:43 +01:00
work.c Update copyright years. 2017-01-01 13:07:43 +01:00