Tree @a813b38 (Download .tar.gz)
- ..
- Large
- addr-01.ll
- addr-02.ll
- addr-03.ll
- alias-01.ll
- alloca-01.ll
- alloca-02.ll
- alloca-03.ll
- alloca-04.ll
- and-01.ll
- and-02.ll
- and-03.ll
- and-04.ll
- and-05.ll
- and-06.ll
- and-07.ll
- and-08.ll
- and-xor-01.ll
- anyregcc-novec.ll
- anyregcc-vec.ll
- anyregcc.ll
- args-01.ll
- args-02.ll
- args-03.ll
- args-04.ll
- args-05.ll
- args-06.ll
- args-07.ll
- args-08.ll
- args-09.ll
- args-10.ll
- asm-01.ll
- asm-02.ll
- asm-03.ll
- asm-04.ll
- asm-05.ll
- asm-06.ll
- asm-07.ll
- asm-08.ll
- asm-09.ll
- asm-10.ll
- asm-11.ll
- asm-12.ll
- asm-13.ll
- asm-14.ll
- asm-15.ll
- asm-16.ll
- asm-17.ll
- asm-18.ll
- asm-19.ll
- atomic-fence-01.ll
- atomic-fence-02.ll
- atomic-load-01.ll
- atomic-load-02.ll
- atomic-load-03.ll
- atomic-load-04.ll
- atomic-load-05.ll
- atomic-store-01.ll
- atomic-store-02.ll
- atomic-store-03.ll
- atomic-store-04.ll
- atomic-store-05.ll
- atomicrmw-add-01.ll
- atomicrmw-add-02.ll
- atomicrmw-add-03.ll
- atomicrmw-add-04.ll
- atomicrmw-add-05.ll
- atomicrmw-add-06.ll
- atomicrmw-and-01.ll
- atomicrmw-and-02.ll
- atomicrmw-and-03.ll
- atomicrmw-and-04.ll
- atomicrmw-and-05.ll
- atomicrmw-and-06.ll
- atomicrmw-minmax-01.ll
- atomicrmw-minmax-02.ll
- atomicrmw-minmax-03.ll
- atomicrmw-minmax-04.ll
- atomicrmw-nand-01.ll
- atomicrmw-nand-02.ll
- atomicrmw-nand-03.ll
- atomicrmw-nand-04.ll
- atomicrmw-or-01.ll
- atomicrmw-or-02.ll
- atomicrmw-or-03.ll
- atomicrmw-or-04.ll
- atomicrmw-or-05.ll
- atomicrmw-or-06.ll
- atomicrmw-sub-01.ll
- atomicrmw-sub-02.ll
- atomicrmw-sub-03.ll
- atomicrmw-sub-04.ll
- atomicrmw-sub-05.ll
- atomicrmw-sub-06.ll
- atomicrmw-xchg-01.ll
- atomicrmw-xchg-02.ll
- atomicrmw-xchg-03.ll
- atomicrmw-xchg-04.ll
- atomicrmw-xor-01.ll
- atomicrmw-xor-02.ll
- atomicrmw-xor-03.ll
- atomicrmw-xor-04.ll
- atomicrmw-xor-05.ll
- atomicrmw-xor-06.ll
- backchain.ll
- branch-01.ll
- branch-02.ll
- branch-03.ll
- branch-04.ll
- branch-05.ll
- branch-06.ll
- branch-07.ll
- branch-08.ll
- branch-09.ll
- branch-10.ll
- branch-11.ll
- branch-folder-hoist-livein.mir
- bswap-01.ll
- bswap-02.ll
- bswap-03.ll
- bswap-04.ll
- bswap-05.ll
- bswap-06.ll
- bswap-07.ll
- bswap-08.ll
- buildvector-00.ll
- builtins.ll
- call-01.ll
- call-02.ll
- call-03.ll
- call-04.ll
- call-05.ll
- cc-liveness.ll
- clear-liverange-spillreg.mir
- cmpxchg-01.ll
- cmpxchg-02.ll
- cmpxchg-03.ll
- cmpxchg-04.ll
- cmpxchg-05.ll
- cmpxchg-06.ll
- codegenprepare-splitstore.ll
- codemodel.ll
- combine_loads_from_build_pair.ll
- cond-load-01.ll
- cond-load-02.ll
- cond-load-03.ll
- cond-move-01.ll
- cond-move-02.ll
- cond-move-03.ll
- cond-move-04.mir
- cond-move-05.mir
- cond-move-regalloc-hints.mir
- cond-store-01.ll
- cond-store-02.ll
- cond-store-03.ll
- cond-store-04.ll
- cond-store-05.ll
- cond-store-06.ll
- cond-store-07.ll
- cond-store-08.ll
- cond-store-09.ll
- copy-physreg-128.ll
- ctpop-01.ll
- dag-combine-01.ll
- dag-combine-02.ll
- dag-combine-03.ll
- dag-combine-04.ll
- dag-combine-05.ll
- DAGCombine_trunc_extract.ll
- DAGCombiner_illegal_BUILD_VECTOR.ll
- DAGCombiner_isAlias.ll
- debuginstr-00.mir
- debuginstr-01.mir
- debuginstr-02.mir
- debuginstr-cgp.mir
- dyn-alloca-offset.ll
- expand-zext-pseudo.ll
- extract-vector-elt-zEC12.ll
- fold-memory-op-impl.ll
- fp-abs-01.ll
- fp-abs-02.ll
- fp-abs-03.ll
- fp-abs-04.ll
- fp-add-01.ll
- fp-add-02.ll
- fp-add-03.ll
- fp-add-04.ll
- fp-cmp-01.ll
- fp-cmp-02.ll
- fp-cmp-03.ll
- fp-cmp-04.ll
- fp-cmp-05.ll
- fp-cmp-06.ll
- fp-cmp-07.mir
- fp-const-01.ll
- fp-const-02.ll
- fp-const-03.ll
- fp-const-04.ll
- fp-const-05.ll
- fp-const-06.ll
- fp-const-07.ll
- fp-const-08.ll
- fp-const-09.ll
- fp-const-10.ll
- fp-const-11.ll
- fp-const-12.ll
- fp-conv-01.ll
- fp-conv-02.ll
- fp-conv-03.ll
- fp-conv-04.ll
- fp-conv-05.ll
- fp-conv-06.ll
- fp-conv-07.ll
- fp-conv-08.ll
- fp-conv-09.ll
- fp-conv-10.ll
- fp-conv-11.ll
- fp-conv-12.ll
- fp-conv-13.ll
- fp-conv-14.ll
- fp-conv-15.ll
- fp-conv-16.ll
- fp-conv-17.mir
- fp-conv-18.ll
- fp-copysign-01.ll
- fp-copysign-02.ll
- fp-div-01.ll
- fp-div-02.ll
- fp-div-03.ll
- fp-div-04.ll
- fp-libcall.ll
- fp-move-01.ll
- fp-move-02.ll
- fp-move-03.ll
- fp-move-04.ll
- fp-move-05.ll
- fp-move-06.ll
- fp-move-07.ll
- fp-move-08.ll
- fp-move-09.ll
- fp-move-10.ll
- fp-move-11.ll
- fp-move-12.ll
- fp-move-13.ll
- fp-mul-01.ll
- fp-mul-02.ll
- fp-mul-03.ll
- fp-mul-04.ll
- fp-mul-05.ll
- fp-mul-06.ll
- fp-mul-07.ll
- fp-mul-08.ll
- fp-mul-09.ll
- fp-mul-10.ll
- fp-mul-11.ll
- fp-mul-12.ll
- fp-neg-01.ll
- fp-neg-02.ll
- fp-round-01.ll
- fp-round-02.ll
- fp-round-03.ll
- fp-sincos-01.ll
- fp-sqrt-01.ll
- fp-sqrt-02.ll
- fp-sqrt-03.ll
- fp-sqrt-04.ll
- fp-strict-add-01.ll
- fp-strict-add-02.ll
- fp-strict-add-03.ll
- fp-strict-add-04.ll
- fp-strict-alias.ll
- fp-strict-conv-01.ll
- fp-strict-conv-02.ll
- fp-strict-conv-03.ll
- fp-strict-conv-04.ll
- fp-strict-conv-15.ll
- fp-strict-div-01.ll
- fp-strict-div-02.ll
- fp-strict-div-03.ll
- fp-strict-div-04.ll
- fp-strict-mul-01.ll
- fp-strict-mul-02.ll
- fp-strict-mul-03.ll
- fp-strict-mul-04.ll
- fp-strict-mul-05.ll
- fp-strict-mul-06.ll
- fp-strict-mul-07.ll
- fp-strict-mul-08.ll
- fp-strict-mul-09.ll
- fp-strict-mul-10.ll
- fp-strict-mul-11.ll
- fp-strict-round-01.ll
- fp-strict-round-02.ll
- fp-strict-round-03.ll
- fp-strict-sqrt-01.ll
- fp-strict-sqrt-02.ll
- fp-strict-sqrt-03.ll
- fp-strict-sqrt-04.ll
- fp-strict-sub-01.ll
- fp-strict-sub-02.ll
- fp-strict-sub-03.ll
- fp-strict-sub-04.ll
- fp-sub-01.ll
- fp-sub-02.ll
- fp-sub-03.ll
- fp-sub-04.ll
- fpc-intrinsics.ll
- frame-01.ll
- frame-02.ll
- frame-03.ll
- frame-04.ll
- frame-05.ll
- frame-06.ll
- frame-07.ll
- frame-08.ll
- frame-09.ll
- frame-10.ll
- frame-11.ll
- frame-13.ll
- frame-14.ll
- frame-15.ll
- frame-16.ll
- frame-17.ll
- frame-18.ll
- frame-19.ll
- frame-20.ll
- frame-21.ll
- frameaddr-01.ll
- hoist-const-stores.ll
- htm-intrinsics.ll
- inline-asm-i-constraint-i1.ll
- inlineasm-output-template.ll
- insert-01.ll
- insert-02.ll
- insert-03.ll
- insert-04.ll
- insert-05.ll
- insert-06.ll
- int-abs-01.ll
- int-add-01.ll
- int-add-02.ll
- int-add-03.ll
- int-add-04.ll
- int-add-05.ll
- int-add-06.ll
- int-add-07.ll
- int-add-08.ll
- int-add-09.ll
- int-add-10.ll
- int-add-11.ll
- int-add-12.ll
- int-add-13.ll
- int-add-14.ll
- int-add-15.ll
- int-add-16.ll
- int-add-17.ll
- int-cmp-01.ll
- int-cmp-02.ll
- int-cmp-03.ll
- int-cmp-04.ll
- int-cmp-05.ll
- int-cmp-06.ll
- int-cmp-07.ll
- int-cmp-08.ll
- int-cmp-09.ll
- int-cmp-10.ll
- int-cmp-11.ll
- int-cmp-12.ll
- int-cmp-13.ll
- int-cmp-14.ll
- int-cmp-15.ll
- int-cmp-16.ll
- int-cmp-17.ll
- int-cmp-18.ll
- int-cmp-19.ll
- int-cmp-20.ll
- int-cmp-21.ll
- int-cmp-22.ll
- int-cmp-23.ll
- int-cmp-24.ll
- int-cmp-25.ll
- int-cmp-26.ll
- int-cmp-27.ll
- int-cmp-28.ll
- int-cmp-29.ll
- int-cmp-30.ll
- int-cmp-31.ll
- int-cmp-32.ll
- int-cmp-33.ll
- int-cmp-34.ll
- int-cmp-35.ll
- int-cmp-36.ll
- int-cmp-37.ll
- int-cmp-38.ll
- int-cmp-39.ll
- int-cmp-40.ll
- int-cmp-41.ll
- int-cmp-42.ll
- int-cmp-43.ll
- int-cmp-44.ll
- int-cmp-45.ll
- int-cmp-46.ll
- int-cmp-47.ll
- int-cmp-48.ll
- int-cmp-49.ll
- int-cmp-50.ll
- int-cmp-51.ll
- int-cmp-52.ll
- int-cmp-53.ll
- int-cmp-54.ll
- int-cmp-55.ll
- int-const-01.ll
- int-const-02.ll
- int-const-03.ll
- int-const-04.ll
- int-const-05.ll
- int-const-06.ll
- int-conv-01.ll
- int-conv-02.ll
- int-conv-03.ll
- int-conv-04.ll
- int-conv-05.ll
- int-conv-06.ll
- int-conv-07.ll
- int-conv-08.ll
- int-conv-09.ll
- int-conv-10.ll
- int-conv-11.ll
- int-conv-12.ll
- int-conv-13.ll
- int-div-01.ll
- int-div-02.ll
- int-div-03.ll
- int-div-04.ll
- int-div-05.ll
- int-div-06.ll
- int-move-01.ll
- int-move-02.ll
- int-move-03.ll
- int-move-04.ll
- int-move-05.ll
- int-move-06.ll
- int-move-07.ll
- int-move-08.ll
- int-move-09.ll
- int-mul-01.ll
- int-mul-02.ll
- int-mul-03.ll
- int-mul-04.ll
- int-mul-05.ll
- int-mul-06.ll
- int-mul-07.ll
- int-mul-08.ll
- int-mul-09.ll
- int-mul-10.ll
- int-mul-11.ll
- int-neg-01.ll
- int-neg-02.ll
- int-sadd-01.ll
- int-sadd-02.ll
- int-sadd-03.ll
- int-sadd-04.ll
- int-sadd-05.ll
- int-sadd-06.ll
- int-sadd-07.ll
- int-sadd-08.ll
- int-sadd-09.ll
- int-ssub-01.ll
- int-ssub-02.ll
- int-ssub-03.ll
- int-ssub-04.ll
- int-ssub-05.ll
- int-ssub-06.ll
- int-ssub-07.ll
- int-ssub-08.ll
- int-ssub-09.ll
- int-sub-01.ll
- int-sub-02.ll
- int-sub-03.ll
- int-sub-04.ll
- int-sub-05.ll
- int-sub-06.ll
- int-sub-07.ll
- int-sub-08.ll
- int-sub-09.ll
- int-sub-10.ll
- int-sub-11.ll
- int-uadd-01.ll
- int-uadd-02.ll
- int-uadd-03.ll
- int-uadd-04.ll
- int-uadd-05.ll
- int-uadd-06.ll
- int-uadd-07.ll
- int-uadd-08.ll
- int-uadd-09.ll
- int-uadd-10.ll
- int-uadd-11.ll
- int-uadd-12.ll
- int-usub-01.ll
- int-usub-02.ll
- int-usub-03.ll
- int-usub-04.ll
- int-usub-05.ll
- int-usub-06.ll
- int-usub-07.ll
- int-usub-08.ll
- int-usub-09.ll
- int-usub-10.ll
- int-usub-11.ll
- ipra-04.ll
- ipra.ll
- isel-debug.ll
- knownbits-intrinsics-binop.ll
- knownbits-intrinsics-unpack.ll
- knownbits.ll
- la-01.ll
- la-02.ll
- la-03.ll
- la-04.ll
- list-ilp-crash.ll
- lit.local.cfg
- load-and-test-RA-hints.mir
- load-and-test.mir
- locr-legal-regclass.ll
- loop-01.ll
- loop-02.ll
- loop-03.ll
- loop-04.ll
- lower-copy-undef-src.mir
- mature-mc-support.ll
- memchr-01.ll
- memchr-nobuiltin.ll
- memcmp-01.ll
- memcmp-02.ll
- memcmp-nobuiltin.ll
- memcpy-01.ll
- memcpy-02.ll
- memset-01.ll
- memset-02.ll
- memset-03.ll
- memset-04.ll
- misched-readadvances.mir
- multiselect.ll
- no-postra-sink.mir
- or-01.ll
- or-02.ll
- or-03.ll
- or-04.ll
- or-05.ll
- or-06.ll
- or-07.ll
- or-08.ll
- patchpoint-invoke.ll
- patchpoint.ll
- pie.ll
- postra-sched-expandedops.mir
- pr31710.ll
- pr32372.ll
- pr32505.ll
- pr36164.ll
- prefetch-01.ll
- RAbasic-invalid-LR-update.mir
- regalloc-fast-invalid-kill-flag.mir
- regalloc-GR128-02.mir
- regalloc-GR128.ll
- regcoal-subranges-update.mir
- ret-addr-01.ll
- risbg-01.ll
- risbg-02.ll
- risbg-03.ll
- risbg-04.ll
- rnsbg-01.ll
- rosbg-01.ll
- rosbg-02.ll
- rot-01.ll
- rot-02.ll
- rot-shift-64-sub-amt.ll
- rxsbg-01.ll
- scalar-ctlz.ll
- selectcc-01.ll
- selectcc-02.ll
- selectcc-03.ll
- selectcc-04.ll
- setcc-01.ll
- setcc-02.ll
- setcc-03.ll
- setcc-04.ll
- shift-01.ll
- shift-02.ll
- shift-03.ll
- shift-04.ll
- shift-05.ll
- shift-06.ll
- shift-07.ll
- shift-08.ll
- shift-09.ll
- shift-10.ll
- shift-11.ll
- shift-12.ll
- signbits-intrinsics-binop.ll
- signbits-intrinsics-unpack.ll
- signbits.ll
- spill-01.ll
- splitMove_undefReg_mverifier.ll
- splitMove_undefReg_mverifier_2.ll
- stack-guard.ll
- stack-size-section.ll
- stackmap-nops.ll
- stackmap-shadow-optimization.ll
- stackmap.ll
- store_nonbytesized_vecs.ll
- strcmp-01.ll
- strcmp-nobuiltin.ll
- strcpy-01.ll
- strcpy-nobuiltin.ll
- strlen-01.ll
- strlen-nobuiltin.ll
- subregliveness-01.ll
- subregliveness-02.ll
- subregliveness-03.ll
- subregliveness-04.ll
- subregliveness-05.ll
- subregliveness-06.mir
- subregliveness-07.mir
- swift-return.ll
- swifterror.ll
- swiftself.ll
- tail-call-mem-intrinsics.ll
- tdc-01.ll
- tdc-02.ll
- tdc-03.ll
- tdc-04.ll
- tdc-05.ll
- tdc-06.ll
- tdc-07.ll
- tls-01.ll
- tls-02.ll
- tls-03.ll
- tls-04.ll
- tls-05.ll
- tls-06.ll
- tls-07.ll
- trap-01.ll
- trap-02.ll
- trap-03.ll
- trap-04.ll
- trap-05.ll
- twoaddr-sink.ll
- unaligned-01.ll
- undef-flag.ll
- vec-abi-align.ll
- vec-abs-01.ll
- vec-abs-02.ll
- vec-abs-03.ll
- vec-abs-04.ll
- vec-abs-05.ll
- vec-abs-06.ll
- vec-add-01.ll
- vec-add-02.ll
- vec-and-01.ll
- vec-and-02.ll
- vec-and-03.ll
- vec-and-04.ll
- vec-args-01.ll
- vec-args-02.ll
- vec-args-03.ll
- vec-args-04.ll
- vec-args-05.ll
- vec-args-06.ll
- vec-args-07.ll
- vec-args-error-01.ll
- vec-args-error-02.ll
- vec-args-error-03.ll
- vec-args-error-04.ll
- vec-args-error-05.ll
- vec-args-error-06.ll
- vec-args-error-07.ll
- vec-args-error-08.ll
- vec-cmp-01.ll
- vec-cmp-02.ll
- vec-cmp-03.ll
- vec-cmp-04.ll
- vec-cmp-05.ll
- vec-cmp-06.ll
- vec-cmp-07.ll
- vec-cmp-cmp-logic-select.ll
- vec-cmpsel.ll
- vec-combine-01.ll
- vec-combine-02.ll
- vec-const-01.ll
- vec-const-02.ll
- vec-const-03.ll
- vec-const-04.ll
- vec-const-05.ll
- vec-const-06.ll
- vec-const-07.ll
- vec-const-08.ll
- vec-const-09.ll
- vec-const-10.ll
- vec-const-11.ll
- vec-const-12.ll
- vec-const-13.ll
- vec-const-14.ll
- vec-const-15.ll
- vec-const-16.ll
- vec-const-17.ll
- vec-const-18.ll
- vec-const-19.ll
- vec-conv-01.ll
- vec-conv-02.ll
- vec-ctlz-01.ll
- vec-ctpop-01.ll
- vec-ctpop-02.ll
- vec-cttz-01.ll
- vec-div-01.ll
- vec-div-02.ll
- vec-extract-01.ll
- vec-extract-02.ll
- vec-intrinsics-01.ll
- vec-intrinsics-02.ll
- vec-load-element.ll
- vec-log-01.ll
- vec-max-01.ll
- vec-max-02.ll
- vec-max-03.ll
- vec-max-04.ll
- vec-max-05.ll
- vec-min-01.ll
- vec-min-02.ll
- vec-min-03.ll
- vec-min-04.ll
- vec-min-05.ll
- vec-move-01.ll
- vec-move-02.ll
- vec-move-03.ll
- vec-move-04.ll
- vec-move-05.ll
- vec-move-06.ll
- vec-move-07.ll
- vec-move-08.ll
- vec-move-09.ll
- vec-move-10.ll
- vec-move-11.ll
- vec-move-12.ll
- vec-move-13.ll
- vec-move-14.ll
- vec-move-15.ll
- vec-move-16.ll
- vec-move-17.ll
- vec-move-18.ll
- vec-move-19.ll
- vec-move-20.ll
- vec-move-21.ll
- vec-move-22.ll
- vec-mul-01.ll
- vec-mul-02.ll
- vec-mul-03.ll
- vec-mul-04.ll
- vec-mul-05.ll
- vec-neg-01.ll
- vec-neg-02.ll
- vec-or-01.ll
- vec-or-02.ll
- vec-or-03.ll
- vec-perm-01.ll
- vec-perm-02.ll
- vec-perm-03.ll
- vec-perm-04.ll
- vec-perm-05.ll
- vec-perm-06.ll
- vec-perm-07.ll
- vec-perm-08.ll
- vec-perm-09.ll
- vec-perm-10.ll
- vec-perm-11.ll
- vec-perm-12.ll
- vec-perm-13.ll
- vec-rem.ll
- vec-round-01.ll
- vec-round-02.ll
- vec-sext.ll
- vec-shift-01.ll
- vec-shift-02.ll
- vec-shift-03.ll
- vec-shift-04.ll
- vec-shift-05.ll
- vec-shift-06.ll
- vec-shift-07.ll
- vec-sqrt-01.ll
- vec-sqrt-02.ll
- vec-strict-add-01.ll
- vec-strict-add-02.ll
- vec-strict-div-01.ll
- vec-strict-div-02.ll
- vec-strict-max-01.ll
- vec-strict-min-01.ll
- vec-strict-mul-01.ll
- vec-strict-mul-02.ll
- vec-strict-mul-03.ll
- vec-strict-mul-04.ll
- vec-strict-mul-05.ll
- vec-strict-round-01.ll
- vec-strict-round-02.ll
- vec-strict-sqrt-01.ll
- vec-strict-sqrt-02.ll
- vec-strict-sub-01.ll
- vec-strict-sub-02.ll
- vec-sub-01.ll
- vec-sub-02.ll
- vec-trunc-to-i1.ll
- vec-xor-01.ll
- vec-xor-02.ll
- vec-zext.ll
- vector-constrained-fp-intrinsics.ll
- vectorizer-output-3xi32.ll
- xor-01.ll
- xor-02.ll
- xor-03.ll
- xor-04.ll
- xor-05.ll
- xor-06.ll
- xor-07.ll
- xor-08.ll
vec-cmp-02.ll @a813b38 — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 | ; Test v8i16 comparisons.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
; Test eq.
define <8 x i16> @f1(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f1:
; CHECK: vceqh %v24, %v26, %v28
; CHECK-NEXT: br %r14
%cmp = icmp eq <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test ne.
define <8 x i16> @f2(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f2:
; CHECK: vceqh [[REG:%v[0-9]+]], %v26, %v28
; CHECK-NEXT: vno %v24, [[REG]], [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ne <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test sgt.
define <8 x i16> @f3(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f3:
; CHECK: vchh %v24, %v26, %v28
; CHECK-NEXT: br %r14
%cmp = icmp sgt <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test sge.
define <8 x i16> @f4(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f4:
; CHECK: vchh [[REG:%v[0-9]+]], %v28, %v26
; CHECK-NEXT: vno %v24, [[REG]], [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp sge <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test sle.
define <8 x i16> @f5(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f5:
; CHECK: vchh [[REG:%v[0-9]+]], %v26, %v28
; CHECK-NEXT: vno %v24, [[REG]], [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp sle <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test slt.
define <8 x i16> @f6(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f6:
; CHECK: vchh %v24, %v28, %v26
; CHECK-NEXT: br %r14
%cmp = icmp slt <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test ugt.
define <8 x i16> @f7(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f7:
; CHECK: vchlh %v24, %v26, %v28
; CHECK-NEXT: br %r14
%cmp = icmp ugt <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test uge.
define <8 x i16> @f8(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f8:
; CHECK: vchlh [[REG:%v[0-9]+]], %v28, %v26
; CHECK-NEXT: vno %v24, [[REG]], [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp uge <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test ule.
define <8 x i16> @f9(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f9:
; CHECK: vchlh [[REG:%v[0-9]+]], %v26, %v28
; CHECK-NEXT: vno %v24, [[REG]], [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ule <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test ult.
define <8 x i16> @f10(<8 x i16> %dummy, <8 x i16> %val1, <8 x i16> %val2) {
; CHECK-LABEL: f10:
; CHECK: vchlh %v24, %v28, %v26
; CHECK-NEXT: br %r14
%cmp = icmp ult <8 x i16> %val1, %val2
%ret = sext <8 x i1> %cmp to <8 x i16>
ret <8 x i16> %ret
}
; Test eq selects.
define <8 x i16> @f11(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f11:
; CHECK: vceqh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v28, %v30, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp eq <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test ne selects.
define <8 x i16> @f12(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f12:
; CHECK: vceqh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v30, %v28, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ne <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test sgt selects.
define <8 x i16> @f13(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f13:
; CHECK: vchh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v28, %v30, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp sgt <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test sge selects.
define <8 x i16> @f14(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f14:
; CHECK: vchh [[REG:%v[0-9]+]], %v26, %v24
; CHECK-NEXT: vsel %v24, %v30, %v28, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp sge <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test sle selects.
define <8 x i16> @f15(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f15:
; CHECK: vchh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v30, %v28, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp sle <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test slt selects.
define <8 x i16> @f16(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f16:
; CHECK: vchh [[REG:%v[0-9]+]], %v26, %v24
; CHECK-NEXT: vsel %v24, %v28, %v30, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp slt <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test ugt selects.
define <8 x i16> @f17(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f17:
; CHECK: vchlh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v28, %v30, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ugt <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test uge selects.
define <8 x i16> @f18(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f18:
; CHECK: vchlh [[REG:%v[0-9]+]], %v26, %v24
; CHECK-NEXT: vsel %v24, %v30, %v28, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp uge <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test ule selects.
define <8 x i16> @f19(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f19:
; CHECK: vchlh [[REG:%v[0-9]+]], %v24, %v26
; CHECK-NEXT: vsel %v24, %v30, %v28, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ule <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
; Test ult selects.
define <8 x i16> @f20(<8 x i16> %val1, <8 x i16> %val2,
<8 x i16> %val3, <8 x i16> %val4) {
; CHECK-LABEL: f20:
; CHECK: vchlh [[REG:%v[0-9]+]], %v26, %v24
; CHECK-NEXT: vsel %v24, %v28, %v30, [[REG]]
; CHECK-NEXT: br %r14
%cmp = icmp ult <8 x i16> %val1, %val2
%ret = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4
ret <8 x i16> %ret
}
|