⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 altivec.md

📁 linux下编程用 编译软件
💻 MD
📖 第 1 页 / 共 5 页
字号:
(define_insn "altivec_vslo"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSLO))]  "TARGET_ALTIVEC"  "vslo %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "lshr<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (lshiftrt:VI (match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v") ))]  "TARGET_ALTIVEC"  "vsr<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "ashr<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (ashiftrt:VI (match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v") ))]  "TARGET_ALTIVEC"  "vsra<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "altivec_vsr"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSR))]  "TARGET_ALTIVEC"  "vsr %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vsro"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSRO))]  "TARGET_ALTIVEC"  "vsro %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vsum4ubs"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V16QI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSUM4UBS))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vsum4ubs %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vsum4s<VI_char>s"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:VIshort 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSUM4S))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vsum4s<VI_char>s %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vsum2sws"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSUM2SWS))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vsum2sws %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vsumsws"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")]		     UNSPEC_VSUMSWS))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vsumsws %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vspltb"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (vec_duplicate:V16QI	 (vec_select:QI (match_operand:V16QI 1 "register_operand" "v")			(parallel			 [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]  "TARGET_ALTIVEC"  "vspltb %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vsplth"  [(set (match_operand:V8HI 0 "register_operand" "=v")	(vec_duplicate:V8HI	 (vec_select:HI (match_operand:V8HI 1 "register_operand" "v")			(parallel			 [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]  "TARGET_ALTIVEC"  "vsplth %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltw"  [(set (match_operand:V4SI 0 "register_operand" "=v")	(vec_duplicate:V4SI	 (vec_select:SI (match_operand:V4SI 1 "register_operand" "v")			(parallel			 [(match_operand:QI 2 "u5bit_cint_operand" "i")]))))]  "TARGET_ALTIVEC"  "vspltw %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "*altivec_vspltsf"  [(set (match_operand:V4SF 0 "register_operand" "=v")	(vec_duplicate:V4SF	 (vec_select:SF (match_operand:V4SF 1 "register_operand" "v")			(parallel			 [(match_operand:QI 2 "u5bit_cint_operand" "i")]))))]  "TARGET_ALTIVEC"  "vspltw %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltis<VI_char>"  [(set (match_operand:VI 0 "register_operand" "=v")	(vec_duplicate:VI	 (match_operand:QI 1 "s5bit_cint_operand" "i")))]  "TARGET_ALTIVEC"  "vspltis<VI_char> %0,%1"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltisw_v4sf"  [(set (match_operand:V4SF 0 "register_operand" "=v")	(vec_duplicate:V4SF	 (float:SF (match_operand:QI 1 "s5bit_cint_operand" "i"))))]  "TARGET_ALTIVEC"  "vspltisw %0,%1"  [(set_attr "type" "vecperm")])(define_insn "ftruncv4sf2"  [(set (match_operand:V4SF 0 "register_operand" "=v")  	(fix:V4SF (match_operand:V4SF 1 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vrfiz %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vperm_<mode>"  [(set (match_operand:V 0 "register_operand" "=v")	(unspec:V [(match_operand:V 1 "register_operand" "v")		   (match_operand:V 2 "register_operand" "v")		   (match_operand:V16QI 3 "register_operand" "v")]		  UNSPEC_VPERM))]  "TARGET_ALTIVEC"  "vperm %0,%1,%2,%3"  [(set_attr "type" "vecperm")])(define_insn "altivec_vrfip"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VRFIP))]  "TARGET_ALTIVEC"  "vrfip %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vrfin"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VRFIN))]  "TARGET_ALTIVEC"  "vrfin %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vrfim"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VRFIM))]  "TARGET_ALTIVEC"  "vrfim %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vcfux"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SI 1 "register_operand" "v")	              (match_operand:QI 2 "immediate_operand" "i")]		     UNSPEC_VCFUX))]  "TARGET_ALTIVEC"  "vcfux %0,%1,%2"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vcfsx"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SI 1 "register_operand" "v")	              (match_operand:QI 2 "immediate_operand" "i")]		     UNSPEC_VCFSX))]  "TARGET_ALTIVEC"  "vcfsx %0,%1,%2"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vctuxs"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SF 1 "register_operand" "v")                      (match_operand:QI 2 "immediate_operand" "i")]		     UNSPEC_VCTUXS))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vctuxs %0,%1,%2"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vctsxs"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SF 1 "register_operand" "v")                      (match_operand:QI 2 "immediate_operand" "i")]		     UNSPEC_VCTSXS))   (set (reg:SI 110) (unspec:SI [(const_int 0)] UNSPEC_SET_VSCR))]  "TARGET_ALTIVEC"  "vctsxs %0,%1,%2"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vlogefp"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VLOGEFP))]  "TARGET_ALTIVEC"  "vlogefp %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vexptefp"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VEXPTEFP))]  "TARGET_ALTIVEC"  "vexptefp %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vrsqrtefp"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VRSQRTEFP))]  "TARGET_ALTIVEC"  "vrsqrtefp %0,%1"  [(set_attr "type" "vecfloat")])(define_insn "altivec_vrefp"  [(set (match_operand:V4SF 0 "register_operand" "=v")        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]		     UNSPEC_VREFP))]  "TARGET_ALTIVEC"  "vrefp %0,%1"  [(set_attr "type" "vecfloat")])(define_expand "vcondv4si"	[(set (match_operand:V4SI 0 "register_operand" "=v")	      (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V4SI 2 "register_operand" "v")	       (match_operand:V4SI 3 "comparison_operator" "")	       (match_operand:V4SI 4 "register_operand" "v")	       (match_operand:V4SI 5 "register_operand" "v")	       ] UNSPEC_VCOND_V4SI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vconduv4si"	[(set (match_operand:V4SI 0 "register_operand" "=v")	      (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V4SI 2 "register_operand" "v")	       (match_operand:V4SI 3 "comparison_operator" "")	       (match_operand:V4SI 4 "register_operand" "v")	       (match_operand:V4SI 5 "register_operand" "v")	       ] UNSPEC_VCONDU_V4SI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vcondv4sf"	[(set (match_operand:V4SF 0 "register_operand" "=v")	      (unspec:V4SF [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V4SF 2 "register_operand" "v")	       (match_operand:V4SF 3 "comparison_operator" "")	       (match_operand:V4SF 4 "register_operand" "v")	       (match_operand:V4SF 5 "register_operand" "v")	       ] UNSPEC_VCOND_V4SF))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vcondv8hi"	[(set (match_operand:V4SF 0 "register_operand" "=v")	      (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V8HI 2 "register_operand" "v")	       (match_operand:V8HI 3 "comparison_operator" "")	       (match_operand:V8HI 4 "register_operand" "v")	       (match_operand:V8HI 5 "register_operand" "v")	       ] UNSPEC_VCOND_V8HI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vconduv8hi"	[(set (match_operand:V4SF 0 "register_operand" "=v")	      (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V8HI 2 "register_operand" "v")	       (match_operand:V8HI 3 "comparison_operator" "")	       (match_operand:V8HI 4 "register_operand" "v")	       (match_operand:V8HI 5 "register_operand" "v")	       ] UNSPEC_VCONDU_V8HI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vcondv16qi"	[(set (match_operand:V4SF 0 "register_operand" "=v")	      (unspec:V16QI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V16QI 2 "register_operand" "v")	       (match_operand:V16QI 3 "comparison_operator" "")	       (match_operand:V16QI 4 "register_operand" "v")	       (match_operand:V16QI 5 "register_operand" "v")	       ] UNSPEC_VCOND_V16QI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_expand "vconduv16qi"	[(set (match_operand:V4SF 0 "register_operand" "=v")	      (unspec:V16QI [(match_operand:V4SI 1 "register_operand" "v")	       (match_operand:V16QI 2 "register_operand" "v")	       (match_operand:V16QI 3 "comparison_operator" "")	       (match_operand:V16QI 4 "register_operand" "v")	       (match_operand:V16QI 5 "register_operand" "v")	       ] UNSPEC_VCONDU_V16QI))]	"TARGET_ALTIVEC"	"{	if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],					  operands[3], operands[4], operands[5]))	DONE;	else	FAIL;}	")(define_insn "altivec_vsel_v4si"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")                      (match_operand:V4SI 3 "register_operand" "v")] 		     UNSPEC_VSEL4SI))]  "TARGET_ALTIVEC"  "vsel %0,%1,%2,%3"  [(set_attr "type" "vecperm")])(define_insn "altivec_vsel_v4sf"  [(set (match_operand:V4SF 0 "register_operand" "=v")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -