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

📄 spe.md

📁 linux下的gcc编译器
💻 MD
📖 第 1 页 / 共 5 页
字号:
			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 518)]  "TARGET_SPE"  "evlwwsplatx %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evmergehi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")			(vec_select:V2SI			 (match_operand:V2SI 2 "gpc_reg_operand" "r")			 (parallel [(const_int 1)				    (const_int 0)]))			(const_int 2)))]  "TARGET_SPE"  "evmergehi %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evmergehilo"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")			(match_operand:V2SI 2 "gpc_reg_operand" "r")			(const_int 2)))]  "TARGET_SPE"  "evmergehilo %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evmergelo"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(vec_merge:V2SI (vec_select:V2SI			 (match_operand:V2SI 1 "gpc_reg_operand" "r")			 (parallel [(const_int 1)				    (const_int 0)]))			(match_operand:V2SI 2 "gpc_reg_operand" "r")			(const_int 2)))]  "TARGET_SPE"  "evmergelo %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evmergelohi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(vec_merge:V2SI (vec_select:V2SI			 (match_operand:V2SI 1 "gpc_reg_operand" "r")			 (parallel [(const_int 1)				    (const_int 0)]))			(vec_select:V2SI			 (match_operand:V2SI 2 "gpc_reg_operand" "r")			 (parallel [(const_int 1)				    (const_int 0)]))			(const_int 2)))]  "TARGET_SPE"  "evmergelohi %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evnand"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (not:V2SI (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")                            (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]  "TARGET_SPE"  "evnand %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evneg"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (neg:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evneg %0,%1"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evnor"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (not:V2SI  (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")                             (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]  "TARGET_SPE"  "evnor %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evorc"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")		  (not:V2SI (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]  "TARGET_SPE"  "evorc %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evor"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")		  (match_operand:V2SI 2 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evor %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evrlwi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:QI 2 "immediate_operand" "i")] 519))]  "TARGET_SPE"  "evrlwi %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evrlw"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:V2SI 2 "gpc_reg_operand" "r")] 520))]  "TARGET_SPE"  "evrlw %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evrndw"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 521))]  "TARGET_SPE"  "evrndw %0,%1"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evsel"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:V2SI 2 "gpc_reg_operand" "r")		      (match_operand:CC 3 "cc_reg_operand" "y")] 522))]  "TARGET_SPE"  "evsel %0,%1,%2,%3"  [(set_attr "type" "veccmp")   (set_attr "length" "4")])(define_insn "spe_evsel_fs"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")	(unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")		      (match_operand:V2SF 2 "gpc_reg_operand" "r")		      (match_operand:CC 3 "cc_reg_operand" "y")] 725))]  "TARGET_SPE"  "evsel %0,%1,%2,%3"  [(set_attr "type" "veccmp")   (set_attr "length" "4")])(define_insn "spe_evslwi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:QI 2 "immediate_operand" "i")]		     523))]  "TARGET_SPE"  "evslwi %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evslw"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:V2SI 2 "gpc_reg_operand" "r")] 524))]  "TARGET_SPE"  "evslw %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evsrwis"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:QI 2 "immediate_operand" "i")]		     525))]  "TARGET_SPE"  "evsrwis %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evsrwiu"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:QI 2 "immediate_operand" "i")]		     526))]  "TARGET_SPE"  "evsrwiu %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evsrws"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:V2SI 2 "gpc_reg_operand" "r")] 527))]  "TARGET_SPE"  "evsrws %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evsrwu"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")		      (match_operand:V2SI 2 "gpc_reg_operand" "r")] 528))]  "TARGET_SPE"  "evsrwu %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evxor"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (xor:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")		  (match_operand:V2SI 2 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evxor %0,%1,%2"  [(set_attr "type" "vecsimple")   (set_attr  "length" "4")])(define_insn "spe_evfsabs"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (abs:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evfsabs %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsadd"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (plus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")		   (match_operand:V2SF 2 "gpc_reg_operand" "r")))   (clobber (reg:SI SPEFSCR_REGNO))]  "TARGET_SPE"  "evfsadd %0,%1,%2"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfscfsf"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 529))]  "TARGET_SPE"  "evfscfsf %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfscfsi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (fix:V2SI (match_operand:V2SF 1 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evfscfsi %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfscfuf"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 530))]  "TARGET_SPE"  "evfscfuf %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfscfui"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")	(unspec:V2SF [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 701))]  "TARGET_SPE"  "evfscfui %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctsf"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 531))]  "TARGET_SPE"  "evfsctsf %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctsi"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 532))]  "TARGET_SPE"  "evfsctsi %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctsiz"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 533))]  "TARGET_SPE"  "evfsctsiz %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctuf"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 534))]  "TARGET_SPE"  "evfsctuf %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctui"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 535))]  "TARGET_SPE"  "evfsctui %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsctuiz"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")        (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 536))]  "TARGET_SPE"  "evfsctuiz %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsdiv"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (div:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")		  (match_operand:V2SF 2 "gpc_reg_operand" "r")))   (clobber (reg:SI SPEFSCR_REGNO))]  "TARGET_SPE"  "evfsdiv %0,%1,%2"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsmul"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (mult:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")		   (match_operand:V2SF 2 "gpc_reg_operand" "r")))   (clobber (reg:SI SPEFSCR_REGNO))]  "TARGET_SPE"  "evfsmul %0,%1,%2"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsnabs"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")	(unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 537))]  "TARGET_SPE"  "evfsnabs %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfsneg"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (neg:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))]  "TARGET_SPE"  "evfsneg %0,%1"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")])(define_insn "spe_evfssub"  [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")        (minus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")		    (match_operand:V2SF 2 "gpc_reg_operand" "r")))   (clobber (reg:SI SPEFSCR_REGNO))]  "TARGET_SPE"  "evfssub %0,%1,%2"  [(set_attr "type" "vecfloat")   (set_attr  "length" "4")]);; SPE SIMD load instructions.;; Only the hardware engineer who designed the SPE inderstands the;; plethora of load and store instructions ;-).  We have no way of;; differentiating between them with RTL so use an unspec of const_int 0 ;; to avoid identical RTL.(define_insn "spe_evldd"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:QI 2 "immediate_operand" "i"))))   (unspec [(const_int 0)] 544)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evldd %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlddx"

⌨️ 快捷键说明

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