📄 altivec.md
字号:
; 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 + -