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

📄 altivec.md

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
(define_insn "altivec_vmrghw"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 1 "register_operand" "v")					 (parallel [(const_int 0)					 	    (const_int 2)						    (const_int 1)						    (const_int 3)]))                        (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v")					 (parallel [(const_int 2)					 	    (const_int 0)						    (const_int 3)						    (const_int 1)]))		      (const_int 5)))]  "TARGET_ALTIVEC"  "vmrghw %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vmrglb"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (vec_merge:V16QI (vec_select:V16QI (match_operand:V16QI 1 "register_operand" "v")					   (parallel [(const_int 8)					   	      (const_int 0)					   	      (const_int 9)					   	      (const_int 1)					   	      (const_int 10)					   	      (const_int 2)						      (const_int 11)						      (const_int 3)					   	      (const_int 12)					   	      (const_int 4)					   	      (const_int 13)					   	      (const_int 5)					   	      (const_int 14)					   	      (const_int 6)					   	      (const_int 15)						      (const_int 7)]))                      (vec_select:V16QI (match_operand:V16QI 2 "register_operand" "v")					   (parallel [(const_int 0)					   	      (const_int 8)					   	      (const_int 1)					   	      (const_int 9)					   	      (const_int 2)					   	      (const_int 10)						      (const_int 3)						      (const_int 11)					   	      (const_int 4)					   	      (const_int 12)					   	      (const_int 5)					   	      (const_int 13)					   	      (const_int 6)					   	      (const_int 14)					   	      (const_int 7)						      (const_int 15)]))		      (const_int 21845)))]  "TARGET_ALTIVEC"  "vmrglb %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vmrglh"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (vec_merge:V8HI (vec_select:V8HI (match_operand:V8HI 1 "register_operand" "v")					   (parallel [(const_int 4)					   	      (const_int 0)					   	      (const_int 5)					   	      (const_int 1)					   	      (const_int 6)					   	      (const_int 2)					   	      (const_int 7)					   	      (const_int 3)]))                        (vec_select:V8HI (match_operand:V8HI 2 "register_operand" "v")					   (parallel [(const_int 0)					   	      (const_int 4)					   	      (const_int 1)					   	      (const_int 5)					   	      (const_int 2)					   	      (const_int 6)					   	      (const_int 3)					   	      (const_int 7)]))		      (const_int 85)))]  "TARGET_ALTIVEC"  "vmrglh %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vmrglw"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 1 "register_operand" "v")					 (parallel [(const_int 2)					 	    (const_int 0)						    (const_int 3)						    (const_int 1)]))                        (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v")					 (parallel [(const_int 0)					 	    (const_int 2)						    (const_int 1)						    (const_int 3)]))		      (const_int 5)))]  "TARGET_ALTIVEC"  "vmrglw %0,%1,%2"  [(set_attr "type" "vecperm")]);; APPLE LOCAL end radar 4110116(define_insn "altivec_vmuleub"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v")                      (match_operand:V16QI 2 "register_operand" "v")] 83))]  "TARGET_ALTIVEC"  "vmuleub %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmulesb"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v")                      (match_operand:V16QI 2 "register_operand" "v")] 84))]  "TARGET_ALTIVEC"  "vmulesb %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmuleuh"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v")                      (match_operand:V8HI 2 "register_operand" "v")] 85))]  "TARGET_ALTIVEC"  "vmuleuh %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmulesh"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v")                      (match_operand:V8HI 2 "register_operand" "v")] 86))]  "TARGET_ALTIVEC"  "vmulesh %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmuloub"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v")                      (match_operand:V16QI 2 "register_operand" "v")] 87))]  "TARGET_ALTIVEC"  "vmuloub %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmulosb"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "v")                      (match_operand:V16QI 2 "register_operand" "v")] 88))]  "TARGET_ALTIVEC"  "vmulosb %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmulouh"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v")                      (match_operand:V8HI 2 "register_operand" "v")] 89))]  "TARGET_ALTIVEC"  "vmulouh %0,%1,%2"  [(set_attr "type" "veccomplex")])(define_insn "altivec_vmulosh"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V8HI 1 "register_operand" "v")                      (match_operand:V8HI 2 "register_operand" "v")] 90))]  "TARGET_ALTIVEC"  "vmulosh %0,%1,%2"  [(set_attr "type" "veccomplex")]);; logical ops(define_insn "and<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (and:VI (match_operand:VI 1 "register_operand" "v")                (match_operand:VI 2 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vand %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "ior<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (ior:VI (match_operand:VI 1 "register_operand" "v")                (match_operand:VI 2 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vor %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "xor<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (xor:VI (match_operand:VI 1 "register_operand" "v")                (match_operand:VI 2 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vxor %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "one_cmpl<mode>2"  [(set (match_operand:VI 0 "register_operand" "=v")        (not:VI (match_operand:VI 1 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vnor %0,%1,%1"  [(set_attr "type" "vecsimple")])  (define_insn "altivec_nor<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (not:VI (ior:VI (match_operand:VI 1 "register_operand" "v")                        (match_operand:VI 2 "register_operand" "v"))))]  "TARGET_ALTIVEC"  "vnor %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "andc<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (and:VI (not:VI (match_operand:VI 2 "register_operand" "v"))                (match_operand:VI 1 "register_operand" "v")))]  "TARGET_ALTIVEC"  "vandc %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "altivec_vpkuhum"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v")                       (match_operand:V8HI 2 "register_operand" "v")] 93))]  "TARGET_ALTIVEC"  "vpkuhum %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkuwum"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 94))]  "TARGET_ALTIVEC"  "vpkuwum %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkpx"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 95))]  "TARGET_ALTIVEC"  "vpkpx %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkuhss"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v")                       (match_operand:V8HI 2 "register_operand" "v")] 96))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkuhss %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkshss"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v")                       (match_operand:V8HI 2 "register_operand" "v")] 97))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkshss %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkuwss"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 98))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkuwss %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkswss"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 99))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkswss %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkuhus"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v")                       (match_operand:V8HI 2 "register_operand" "v")] 100))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkuhus %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkshus"  [(set (match_operand:V16QI 0 "register_operand" "=v")        (unspec:V16QI [(match_operand:V8HI 1 "register_operand" "v")                       (match_operand:V8HI 2 "register_operand" "v")] 101))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkshus %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkuwus"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 102))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkuwus %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vpkswus"  [(set (match_operand:V8HI 0 "register_operand" "=v")        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 103))   (set (reg:SI 110) (unspec:SI [(const_int 0)] 213))]  "TARGET_ALTIVEC"  "vpkswus %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vrl<VI_char>"  [(set (match_operand:VI 0 "register_operand" "=v")        (unspec:VI [(match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v")] 104))]  "TARGET_ALTIVEC"  "vrl<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "altivec_vsl<VI_char>"  [(set (match_operand:VI 0 "register_operand" "=v")        (unspec:VI [(match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v")] 107))]  "TARGET_ALTIVEC"  "vsl<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "altivec_vslw_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")] 109))]  "TARGET_ALTIVEC"  "vslw %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "altivec_vsl"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 110))]  "TARGET_ALTIVEC"  "vsl %0,%1,%2"  [(set_attr "type" "vecperm")])(define_insn "altivec_vslo"  [(set (match_operand:V4SI 0 "register_operand" "=v")        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")                      (match_operand:V4SI 2 "register_operand" "v")] 111))]  "TARGET_ALTIVEC"  "vslo %0,%1,%2"  [(set_attr "type" "vecperm")]); APPLE LOCAL begin mainline 2005-04-05 3972515 (define_insn "lshr<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (lshiftrt:VI (match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v") ))]  "TARGET_ALTIVEC"  "vsr<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])(define_insn "ashr<mode>3"  [(set (match_operand:VI 0 "register_operand" "=v")        (ashiftrt:VI (match_operand:VI 1 "register_operand" "v")                    (match_operand:VI 2 "register_operand" "v") ))]  "TARGET_ALTIVEC"  "vsra<VI_char> %0,%1,%2"  [(set_attr "type" "vecsimple")])

⌨️ 快捷键说明

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