module &module:1:0:$full:$large:$default; /* Test high part multiplies. */ /* { dg-do compile } */ /* { dg-options "-fdump-tree-gimple" } */ prog kernel &Kernel(kernarg_u64 %input_ptr, kernarg_u64 %output_ptr) { ld_kernarg_u64 $d0, [%input_ptr]; ld_global_u64 $d1, [$d0]; ld_global_u64 $d2, [$d0 + 8]; ld_global_u32 $s0, [$d0 + 16]; ld_global_u32 $s1, [$d0 + 20]; mulhi_s32 $s2, $s0, $s1; mulhi_s64 $d2, $d1, $d2; mad24hi_s32 $s3, $s0, $s1, $s2; mul24hi_s32 $s3, $s3, $s1; ld_kernarg_u64 $d0, [%output_ptr]; st_global_u64 $d1, [$d0]; st_global_u32 $s2, [$d0 + 8]; st_global_u32 $s3, [$d0 + 12]; ret; }; /* All of the hipart mults areImplemented using MULT_HIGHPART_EXPR (h*). */ /* { dg-final { scan-tree-dump-times " h\\\* " 4 "gimple"} } */