if (!targetm.scalar_mode_supported_p (compute_mode))
break;
+ /* gen_lowpart_for_combine returns CLOBBER on failure. */
+ rtx lowpart = gen_lowpart (compute_mode, SET_SRC (x));
+ if (GET_CODE (lowpart) == CLOBBER)
+ break;
+
/* Now compute the equivalent expression. Make a copy of INNER
for the SET_DEST in case it is a MEM into which we will substitute;
we don't want shared RTL in that case. */
inner);
masked = simplify_gen_binary (ASHIFT, compute_mode,
simplify_gen_binary (
- AND, compute_mode,
- gen_lowpart (compute_mode, SET_SRC (x)),
- mask),
+ AND, compute_mode, lowpart, mask),
pos);
x = gen_rtx_SET (copy_rtx (inner),
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+enum { TGSI_FILE_NULL };
+struct ureg_src {
+ unsigned File : 4;
+ unsigned : 2;
+ unsigned : 2;
+ unsigned : 2;
+ unsigned : 1;
+ unsigned IndirectFile : 4;
+ unsigned IndirectSwizzle : 2;
+ int : 16;
+ int : 6;
+ int : 16;
+ int : 16;
+ unsigned : 10;
+} __trans_tmp_1;
+
+int ureg_src_indirect_addr_1, ntt_emit_texture_instr_sampler_handle_src;
+
+void ureg_scalar(struct ureg_src);
+
+void ntt_emit_texture_instr() {
+ struct ureg_src sampler;
+ if (ntt_emit_texture_instr_sampler_handle_src)
+ sampler = __trans_tmp_1;
+ struct ureg_src reg = sampler;
+ reg.File != TGSI_FILE_NULL;
+ reg.IndirectFile = reg.IndirectSwizzle = ureg_src_indirect_addr_1;
+ sampler = reg;
+ ureg_scalar(reg);
+}