📄 spe.md
字号:
[(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 + -