11913 opcode(0x85);
11914 ins_encode(REX_reg_reg_wide(src, src), OpcP, reg_reg(src, src));
11915 ins_pipe(ialu_cr_reg_imm);
11916 %}
11917
11918 instruct compB_mem_imm(rFlagsReg cr, memory mem, immI8 imm)
11919 %{
11920 match(Set cr (CmpI (LoadB mem) imm));
11921
11922 ins_cost(125);
11923 format %{ "cmpb $mem, $imm" %}
11924 ins_encode %{ __ cmpb($mem$$Address, $imm$$constant); %}
11925 ins_pipe(ialu_cr_reg_mem);
11926 %}
11927
11928 instruct testUB_mem_imm(rFlagsReg cr, memory mem, immU8 imm, immI0 zero)
11929 %{
11930 match(Set cr (CmpI (AndI (LoadUB mem) imm) zero));
11931
11932 ins_cost(125);
11933 format %{ "testb $mem, $imm" %}
11934 ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11935 ins_pipe(ialu_cr_reg_mem);
11936 %}
11937
11938 //----------Max and Min--------------------------------------------------------
11939 // Min Instructions
11940
11941 instruct cmovI_reg_g(rRegI dst, rRegI src, rFlagsReg cr)
11942 %{
11943 effect(USE_DEF dst, USE src, USE cr);
11944
11945 format %{ "cmovlgt $dst, $src\t# min" %}
11946 opcode(0x0F, 0x4F);
11947 ins_encode(REX_reg_reg(dst, src), OpcP, OpcS, reg_reg(dst, src));
11948 ins_pipe(pipe_cmov_reg);
11949 %}
11950
11951
11952 instruct minI_rReg(rRegI dst, rRegI src)
11953 %{
|
11913 opcode(0x85);
11914 ins_encode(REX_reg_reg_wide(src, src), OpcP, reg_reg(src, src));
11915 ins_pipe(ialu_cr_reg_imm);
11916 %}
11917
11918 instruct compB_mem_imm(rFlagsReg cr, memory mem, immI8 imm)
11919 %{
11920 match(Set cr (CmpI (LoadB mem) imm));
11921
11922 ins_cost(125);
11923 format %{ "cmpb $mem, $imm" %}
11924 ins_encode %{ __ cmpb($mem$$Address, $imm$$constant); %}
11925 ins_pipe(ialu_cr_reg_mem);
11926 %}
11927
11928 instruct testUB_mem_imm(rFlagsReg cr, memory mem, immU8 imm, immI0 zero)
11929 %{
11930 match(Set cr (CmpI (AndI (LoadUB mem) imm) zero));
11931
11932 ins_cost(125);
11933 format %{ "testb $mem, $imm\t# ubyte" %}
11934 ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11935 ins_pipe(ialu_cr_reg_mem);
11936 %}
11937
11938 instruct testB_mem_imm(rFlagsReg cr, memory mem, immI8 imm, immI0 zero)
11939 %{
11940 match(Set cr (CmpI (AndI (LoadB mem) imm) zero));
11941
11942 ins_cost(125);
11943 format %{ "testb $mem, $imm\t# byte" %}
11944 ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11945 ins_pipe(ialu_cr_reg_mem);
11946 %}
11947
11948 //----------Max and Min--------------------------------------------------------
11949 // Min Instructions
11950
11951 instruct cmovI_reg_g(rRegI dst, rRegI src, rFlagsReg cr)
11952 %{
11953 effect(USE_DEF dst, USE src, USE cr);
11954
11955 format %{ "cmovlgt $dst, $src\t# min" %}
11956 opcode(0x0F, 0x4F);
11957 ins_encode(REX_reg_reg(dst, src), OpcP, OpcS, reg_reg(dst, src));
11958 ins_pipe(pipe_cmov_reg);
11959 %}
11960
11961
11962 instruct minI_rReg(rRegI dst, rRegI src)
11963 %{
|