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

📄 spe.md

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
  [(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" "vecfdiv")   (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" "vecsimple")   (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" "vecsimple")   (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 understands 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,%2*8(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlddx"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 545)]  "TARGET_SPE"  "evlddx %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evldh"  [(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)] 546)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evldh %0,%2*8(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evldhx"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 547)]  "TARGET_SPE"  "evldhx %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evldw"  [(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)] 548)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evldw %0,%2*8(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evldwx"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 549)]  "TARGET_SPE"  "evldwx %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhe"  [(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)] 550)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evlwhe %0,%2*4(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhex"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 551)]  "TARGET_SPE"  "evlwhex %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhos"  [(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)] 552)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evlwhos %0,%2*4(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhosx"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 553)]  "TARGET_SPE"  "evlwhosx %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhou"  [(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)] 554)]  "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"  "evlwhou %0,%2*4(%1)"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_evlwhoux"  [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")	(mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")			   (match_operand:SI 2 "gpc_reg_operand" "r"))))   (unspec [(const_int 0)] 555)]  "TARGET_SPE"  "evlwhoux %0,%1,%2"  [(set_attr "type" "vecload")   (set_attr  "length" "4")])(define_insn "spe_brinc"  [(set (match_operand:SI 0 "gpc_reg_operand" "=r")        (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "r")		    (match_operand:SI 2 "gpc_reg_operand" "r")] 556))]  "TARGET_SPE"  "brinc %0,%1,%2"  [(set_attr "type" "brinc")   (set_attr  "length" "4")])(define_insn "spe_evmhegsmfaa"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 557))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegsmfaa %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhegsmfan"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 558))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegsmfan %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhegsmiaa"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 559))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegsmiaa %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhegsmian"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 560))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegsmian %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhegumiaa"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 561))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegumiaa %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhegumian"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 562))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhegumian %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmfaaw"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 563))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmfaaw %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmfanw"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 564))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmfanw %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmfa"  [(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")] 565))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmfa %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmf"  [(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")] 566))]  "TARGET_SPE"  "evmhesmf %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmiaaw"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 567))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmiaaw %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmianw"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 568))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmianw %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmia"  [(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")] 569))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"  "evmhesmia %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhesmi"  [(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")] 570))]  "TARGET_SPE"  "evmhesmi %0,%1,%2"  [(set_attr "type" "veccomplex")   (set_attr  "length" "4")])(define_insn "spe_evmhessfaaw"  [(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")		      (reg:V2SI SPE_ACC_REGNO)] 571))   (clobber (reg:SI SPEFSCR_REGNO))   (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI  [(const_int 0)] 0))]  "TARGET_SPE"

⌨️ 快捷键说明

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