📄 rs6000.md
字号:
lbz%U1%X1 %0,%1 rldicl %0,%1,0,56" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "rldicl. %2,%1,0,56" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (zero_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "rldicl. %0,%1,0,56" [(set_attr "type" "compare")])(define_insn "extendqidi2" [(set (match_operand:DI 0 "gpc_reg_operand" "=r") (sign_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r")))] "TARGET_POWERPC64" "extsb %0,%1")(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "extsb. %2,%1" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (sign_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "extsb. %0,%1" [(set_attr "type" "compare")])(define_expand "zero_extendhidi2" [(set (match_operand:DI 0 "gpc_reg_operand" "") (zero_extend:DI (match_operand:HI 1 "gpc_reg_operand" "")))] "TARGET_POWERPC64" "")(define_insn "" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (zero_extend:DI (match_operand:HI 1 "reg_or_mem_operand" "m,r")))] "TARGET_POWERPC64" "@ lhz%U1%X1 %0,%1 rldicl %0,%1,0,48" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "rldicl. %2,%1,0,48" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (zero_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "rldicl. %0,%1,0,48" [(set_attr "type" "compare")])(define_expand "extendhidi2" [(set (match_operand:DI 0 "gpc_reg_operand" "") (sign_extend:DI (match_operand:HI 1 "gpc_reg_operand" "")))] "TARGET_POWERPC64" "")(define_insn "" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (sign_extend:DI (match_operand:HI 1 "reg_or_mem_operand" "m,r")))] "TARGET_POWERPC64" "@ lha%U1%X1 %0,%1 extsh %0,%1" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "extsh. %2,%1" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (sign_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "extsh. %0,%1" [(set_attr "type" "compare")])(define_expand "zero_extendsidi2" [(set (match_operand:DI 0 "gpc_reg_operand" "") (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "")))] "TARGET_POWERPC64" "")(define_insn "" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (zero_extend:DI (match_operand:SI 1 "reg_or_mem_operand" "m,r")))] "TARGET_POWERPC64" "@ lwz%U1%X1 %0,%1 rldicl %0,%1,0,32" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "rldicl. %2,%1,0,32" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (zero_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "rldicl. %0,%1,0,32" [(set_attr "type" "compare")])(define_expand "extendsidi2" [(set (match_operand:DI 0 "gpc_reg_operand" "") (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "")))] "TARGET_POWERPC64" "")(define_insn "" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))] "TARGET_POWERPC64" "@ lwa%U1%X1 %0,%1 extsw %0,%1" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:DI 2 "=r"))] "TARGET_POWERPC64" "extsw. %2,%1" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (sign_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (sign_extend:DI (match_dup 1)))] "TARGET_POWERPC64" "extsw. %0,%1" [(set_attr "type" "compare")])(define_expand "zero_extendqisi2" [(set (match_operand:SI 0 "gpc_reg_operand" "") (zero_extend:SI (match_operand:QI 1 "gpc_reg_operand" "")))] "" "")(define_insn "" [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (zero_extend:SI (match_operand:QI 1 "reg_or_mem_operand" "m,r")))] "" "@ lbz%U1%X1 %0,%1 {rlinm|rlwinm} %0,%1,0,0xff" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:SI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:SI 2 "=r"))] "" "{andil.|andi.} %2,%1,0xff" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:SI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (zero_extend:SI (match_dup 1)))] "" "{andil.|andi.} %0,%1,0xff" [(set_attr "type" "compare")])(define_expand "extendqisi2" [(use (match_operand:SI 0 "gpc_reg_operand" "")) (use (match_operand:QI 1 "gpc_reg_operand" ""))] "" "{ if (TARGET_POWERPC) emit_insn (gen_extendqisi2_ppc (operands[0], operands[1])); else if (TARGET_POWER) emit_insn (gen_extendqisi2_power (operands[0], operands[1])); else emit_insn (gen_extendqisi2_no_power (operands[0], operands[1])); DONE;}")(define_insn "extendqisi2_ppc" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (sign_extend:SI (match_operand:QI 1 "gpc_reg_operand" "r")))] "TARGET_POWERPC" "extsb %0,%1")(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (sign_extend:SI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:SI 2 "=r"))] "TARGET_POWERPC" "extsb. %2,%1" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (sign_extend:SI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (sign_extend:SI (match_dup 1)))] "TARGET_POWERPC" "extsb. %0,%1" [(set_attr "type" "compare")])(define_expand "extendqisi2_power" [(parallel [(set (match_dup 2) (ashift:SI (match_operand:QI 1 "gpc_reg_operand" "") (const_int 24))) (clobber (scratch:SI))]) (parallel [(set (match_operand:SI 0 "gpc_reg_operand" "") (ashiftrt:SI (match_dup 2) (const_int 24))) (clobber (scratch:SI))])] "TARGET_POWER" "{ operands[1] = gen_lowpart (SImode, operands[1]); operands[2] = gen_reg_rtx (SImode); }")(define_expand "extendqisi2_no_power" [(set (match_dup 2) (ashift:SI (match_operand:QI 1 "gpc_reg_operand" "") (const_int 24))) (set (match_operand:SI 0 "gpc_reg_operand" "") (ashiftrt:SI (match_dup 2) (const_int 24)))] "! TARGET_POWER && ! TARGET_POWERPC" "{ operands[1] = gen_lowpart (SImode, operands[1]); operands[2] = gen_reg_rtx (SImode); }")(define_expand "zero_extendqihi2" [(set (match_operand:HI 0 "gpc_reg_operand" "") (zero_extend:HI (match_operand:QI 1 "gpc_reg_operand" "")))] "" "")(define_insn "" [(set (match_operand:HI 0 "gpc_reg_operand" "=r,r") (zero_extend:HI (match_operand:QI 1 "reg_or_mem_operand" "m,r")))] "" "@ lbz%U1%X1 %0,%1 {rlinm|rlwinm} %0,%1,0,0xff" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:HI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:HI 2 "=r"))] "" "{andil.|andi.} %2,%1,0xff" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:HI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:HI 0 "gpc_reg_operand" "=r") (zero_extend:HI (match_dup 1)))] "" "{andil.|andi.} %0,%1,0xff" [(set_attr "type" "compare")])(define_expand "extendqihi2" [(use (match_operand:HI 0 "gpc_reg_operand" "")) (use (match_operand:QI 1 "gpc_reg_operand" ""))] "" "{ if (TARGET_POWERPC) emit_insn (gen_extendqihi2_ppc (operands[0], operands[1])); else if (TARGET_POWER) emit_insn (gen_extendqihi2_power (operands[0], operands[1])); else emit_insn (gen_extendqihi2_no_power (operands[0], operands[1])); DONE;}")(define_insn "extendqihi2_ppc" [(set (match_operand:HI 0 "gpc_reg_operand" "=r") (sign_extend:HI (match_operand:QI 1 "gpc_reg_operand" "r")))] "TARGET_POWERPC" "extsb %0,%1")(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (sign_extend:HI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:HI 2 "=r"))] "TARGET_POWERPC" "extsb. %2,%1" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (sign_extend:HI (match_operand:QI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:HI 0 "gpc_reg_operand" "=r") (sign_extend:HI (match_dup 1)))] "TARGET_POWERPC" "extsb. %0,%1" [(set_attr "type" "compare")])(define_expand "extendqihi2_power" [(parallel [(set (match_dup 2) (ashift:SI (match_operand:QI 1 "gpc_reg_operand" "") (const_int 24))) (clobber (scratch:SI))]) (parallel [(set (match_operand:HI 0 "gpc_reg_operand" "") (ashiftrt:SI (match_dup 2) (const_int 24))) (clobber (scratch:SI))])] "TARGET_POWER" "{ operands[0] = gen_lowpart (SImode, operands[0]); operands[1] = gen_lowpart (SImode, operands[1]); operands[2] = gen_reg_rtx (SImode); }")(define_expand "extendqihi2_no_power" [(set (match_dup 2) (ashift:SI (match_operand:QI 1 "gpc_reg_operand" "") (const_int 24))) (set (match_operand:HI 0 "gpc_reg_operand" "") (ashiftrt:SI (match_dup 2) (const_int 24)))] "! TARGET_POWER && ! TARGET_POWERPC" "{ operands[0] = gen_lowpart (SImode, operands[0]); operands[1] = gen_lowpart (SImode, operands[1]); operands[2] = gen_reg_rtx (SImode); }")(define_expand "zero_extendhisi2" [(set (match_operand:SI 0 "gpc_reg_operand" "") (zero_extend:SI (match_operand:HI 1 "gpc_reg_operand" "")))] "" "")(define_insn "" [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (zero_extend:SI (match_operand:HI 1 "reg_or_mem_operand" "m,r")))] "" "@ lhz%U1%X1 %0,%1 {rlinm|rlwinm} %0,%1,0,0xffff" [(set_attr "type" "load,*")])(define_insn "" [(set (match_operand:CC 0 "cc_reg_operand" "=x") (compare:CC (zero_extend:SI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (clobber (match_scratch:SI 2 "=r"))] "" "{andil.|andi.} %2,%1,0xffff" [(set_attr "type" "compare")])(define_insn "" [(set (match_operand:CC 2 "cc_reg_operand" "=x") (compare:CC (zero_extend:SI (match_operand:HI 1 "gpc_reg_operand" "r")) (const_int 0))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (zero_extend:SI (match_dup 1)))] "" "{andil.|andi.} %0,%1,0xffff" [(set_attr "type" "compare")])(define_expand "extendhisi2" [(set (match_operand:SI 0 "gpc_reg_operand" "") (sign_extend:SI (match_operand:HI 1 "gpc_reg_operand" "")))] "" "")(define_insn "" [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (sign_extend:SI (match_operand:HI 1 "reg_or_mem_operand" "m,r")))] "" "@ lha%U1%X1 %0,%1 {exts|extsh} %0,%1" [(set_attr "type" "load,*")])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -