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

📄 altivec.md

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
; APPLE LOCAL end mainline 2005-04-05 3972515 (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")] 118))]  "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")] 119))]  "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")] 131))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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")] 132))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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")] 134))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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")] 135))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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;; APPLE LOCAL 4119059			 [(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;; APPLE LOCAL 411959			 [(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;; APPLE LOCAL 4119059			 [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]  "TARGET_ALTIVEC"  "vspltw %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltisb"  [(set (match_operand:V16QI 0 "register_operand" "=v")	(vec_duplicate:V16QI;; APPLE LOCAL 4119059	 (match_operand:QI 1 "s5bit_cint_operand" "")))]  "TARGET_ALTIVEC"  "vspltisb %0,%1"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltish"  [(set (match_operand:V8HI 0 "register_operand" "=v")	(vec_duplicate:V8HI;; APPLE LOCAL 4119059	 (sign_extend:HI (match_operand:QI 1 "s5bit_cint_operand" ""))))]  "TARGET_ALTIVEC"  "vspltish %0,%1"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltisw"  [(set (match_operand:V4SI 0 "register_operand" "=v")	(vec_duplicate:V4SI;; APPLE LOCAL 4119059	 (sign_extend:SI (match_operand:QI 1 "s5bit_cint_operand" ""))))]  "TARGET_ALTIVEC"  "vspltisw %0,%1"  [(set_attr "type" "vecperm")])(define_insn "altivec_vspltisw_v4sf"  [(set (match_operand:V4SF 0 "register_operand" "=v")	(vec_duplicate:V4SF	 (float:SF (sign_extend:SI;; APPLE LOCAL 4119059		    (match_operand:QI 1 "s5bit_cint_operand" "")))))]  "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_v4sf"  [(set (match_operand:V4SF 0 "register_operand" "=v")	(unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")		      (match_operand:V4SF 2 "register_operand" "v")		      (match_operand:V16QI 3 "register_operand" "v")] 145))]  "TARGET_ALTIVEC"  "vperm %0,%1,%2,%3"  [(set_attr "type" "vecperm")])(define_insn "altivec_vperm_<mode>"  [(set (match_operand:VI 0 "register_operand" "=v")	(unspec:VI [(match_operand:VI 1 "register_operand" "v")		    (match_operand:VI 2 "register_operand" "v")		    (match_operand:V16QI 3 "register_operand" "v")] 144))]  "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")] 148))]  "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")] 149))]  "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")] 150))]  "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")] 151))]  "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")] 152))]  "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")] 153))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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")] 154))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "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")] 155))]  "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")] 156))]  "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")] 157))]  "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")] 158))]  "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")

⌨️ 快捷键说明

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