1bf215546Sopenharmony_ci#!/bin/bash
2bf215546Sopenharmony_ci
3bf215546Sopenharmony_ciset -e
4bf215546Sopenharmony_ci
5bf215546Sopenharmony_cigen_shader() {
6bf215546Sopenharmony_ci	imm=$1
7bf215546Sopenharmony_ci	if [ "$2" = "half" ]; then
8bf215546Sopenharmony_ci		h="h"
9bf215546Sopenharmony_ci		mov="cov.u16u32"
10bf215546Sopenharmony_ci	else
11bf215546Sopenharmony_ci		h=""
12bf215546Sopenharmony_ci		mov="mov.u32u32"
13bf215546Sopenharmony_ci	fi
14bf215546Sopenharmony_ci	cat <<EOF
15bf215546Sopenharmony_ci@localsize 1, 1, 1
16bf215546Sopenharmony_ci@buf 4  ; g[0]
17bf215546Sopenharmony_cimov.u32u32 r0.x, 0
18bf215546Sopenharmony_ci(rpt5)nop
19bf215546Sopenharmony_ci(rpt5)nop
20bf215546Sopenharmony_ciadd.f ${h}r2.x, ${h}r0.x, $imm
21bf215546Sopenharmony_ci(rpt5)nop
22bf215546Sopenharmony_ci$mov r1.x, ${h}r2.x
23bf215546Sopenharmony_ci(rpt5)nop
24bf215546Sopenharmony_ci; and store results:
25bf215546Sopenharmony_cistib.b.untyped.1d.u32.1.imm r1.x, r0.x, 0
26bf215546Sopenharmony_ci(sy)nop
27bf215546Sopenharmony_ciend
28bf215546Sopenharmony_ciEOF
29bf215546Sopenharmony_ci}
30bf215546Sopenharmony_ci
31bf215546Sopenharmony_ci
32bf215546Sopenharmony_cirun() {
33bf215546Sopenharmony_ci	echo "TEST: $*"
34bf215546Sopenharmony_ci	gen_shader $* | ./computerator -g 1,1,1 -d
35bf215546Sopenharmony_ci}
36bf215546Sopenharmony_ci
37bf215546Sopenharmony_cifor n in `seq 0 16`; do
38bf215546Sopenharmony_ci	run "$n" "full"
39bf215546Sopenharmony_ci	run "h($n)" "half"
40bf215546Sopenharmony_cidone
41