rs6000: Fix wrong align passed to build_aligned_type [PR88309]

As the comments in PR88309 show, there are two oversights
in rs6000_gimple_fold_builtin that pass align in bytes to
build_aligned_type but which actually requires align in
bits, it causes unexpected ICE or hanging in function
is_miss_rate_acceptable due to zero align_unit value.

This patch is to fix them by converting bytes to bits, add
an assertion on positive align_unit value and notes function
build_aligned_type requires align measured in bits in its
function comment.

	PR target/88309

Co-authored-by: Andrew Pinski <quic_apinski@quicinc.com>

gcc/ChangeLog:

	* config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Fix
	wrong align passed to function build_aligned_type.
	* tree-ssa-loop-prefetch.c (is_miss_rate_acceptable): Add an
	assertion to ensure align_unit should be positive.
	* tree.c (build_qualified_type): Update function comments.

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/pr88309.c: New test.

(cherry picked from commit 26eb5f8fd173e2425ae7505528fc426de4b7e34c)
4 files changed