Supporting count bit set instruction

The cbit instruction counts component-wise the total bits set
in src0 and stores the resulting counts in dst.
This commit is contained in:
Homer Hsing 2012-09-14 08:41:16 +08:00 committed by Damien Lespiau
parent d4f48a7271
commit 4285d9c2ce
3 changed files with 4 additions and 2 deletions

View File

@ -601,6 +601,7 @@
#define BRW_OPCODE_MAC 72
#define BRW_OPCODE_MACH 73
#define BRW_OPCODE_LZD 74
#define BRW_OPCODE_CBIT 77
#define BRW_OPCODE_ADDC 78
#define BRW_OPCODE_SAD2 80
#define BRW_OPCODE_SADA2 81

View File

@ -115,7 +115,7 @@ void set_direct_src_operand(struct src_operand *src, struct direct_reg *reg,
%token <integer> MOV FRC RNDU RNDD RNDE RNDZ NOT LZD
%token <integer> MUL MAC MACH LINE SAD2 SADA2 DP4 DPH DP3 DP2
%token <integer> AVG ADD SEL AND OR XOR SHR SHL ASR CMP CMPN PLN
%token <integer> ADDC BFI1 BFREV
%token <integer> ADDC BFI1 BFREV CBIT
%token <integer> SEND NOP JMPI IF IFF WHILE ELSE BREAK CONT HALT MSAVE
%token <integer> PUSH MREST POP WAIT DO ENDIF ILLEGAL
%token <integer> MATH_INST
@ -417,7 +417,7 @@ unaryinstruction:
}
;
unaryop: MOV | FRC | RNDU | RNDD | RNDE | RNDZ | NOT | LZD | BFREV
unaryop: MOV | FRC | RNDU | RNDD | RNDE | RNDZ | NOT | LZD | BFREV | CBIT
;
binaryinstruction:

View File

@ -100,6 +100,7 @@ yylval.integer = BRW_CHANNEL_W;
"dp3" { yylval.integer = BRW_OPCODE_DP3; return DP3; }
"dp2" { yylval.integer = BRW_OPCODE_DP2; return DP2; }
"cbit" { yylval.integer = BRW_OPCODE_CBIT; return CBIT; }
"avg" { yylval.integer = BRW_OPCODE_AVG; return AVG; }
"add" { yylval.integer = BRW_OPCODE_ADD; return ADD; }
"addc" { yylval.integer = BRW_OPCODE_ADDC; return ADDC; }