| OLD | NEW |
| 1 ; This test checks that undef values are represented as zero. | 1 ; This test checks that undef values are represented as zero. |
| 2 | 2 |
| 3 ; RUN: %llvm2ice --verbose none %s | FileCheck %s | |
| 4 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s | |
| 5 ; RUN: %llvm2ice -mattr=sse4.1 --verbose none %s | FileCheck %s | |
| 6 ; RUN: %llvm2ice -mattr=sse4.1 -O2 --verbose none %s | FileCheck %s | |
| 7 ; RUN: %llvm2ice -O2 --verbose none %s \ | 3 ; RUN: %llvm2ice -O2 --verbose none %s \ |
| 8 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 9 ; RUN: %llvm2ice -Om1 --verbose none %s \ | 6 ; RUN: %llvm2ice -Om1 --verbose none %s \ |
| 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 11 ; RUN: %llvm2ice -mattr=sse4.1 -O2 --verbose none %s \ | 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 12 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 9 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \ |
| 13 ; RUN: %llvm2ice -mattr=sse4.1 -Om1 --verbose none %s \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 14 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 11 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 12 ; RUN: %llvm2ice -Om1 -mattr=sse4.1 --verbose none %s \ |
| 13 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 14 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
| 16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
| 17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | 17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
| 18 ; RUN: | FileCheck --check-prefix=DUMP %s | 18 ; RUN: | FileCheck --check-prefix=DUMP %s |
| 19 | 19 |
| 20 define i32 @undef_i32() { | 20 define i32 @undef_i32() { |
| 21 entry: | 21 entry: |
| 22 ret i32 undef | 22 ret i32 undef |
| 23 ; CHECK-LABEL: undef_i32: | 23 ; CHECK-LABEL: undef_i32 |
| 24 ; CHECK: mov eax, 0 | 24 ; CHECK: mov eax, 0 |
| 25 } | 25 } |
| 26 | 26 |
| 27 define i64 @undef_i64() { | 27 define i64 @undef_i64() { |
| 28 entry: | 28 entry: |
| 29 ret i64 undef | 29 ret i64 undef |
| 30 ; CHECK-LABEL: undef_i64: | 30 ; CHECK-LABEL: undef_i64 |
| 31 ; CHECK-DAG: mov eax, 0 | 31 ; CHECK-DAG: mov eax, 0 |
| 32 ; CHECK-DAG: mov edx, 0 | 32 ; CHECK-DAG: mov edx, 0 |
| 33 ; CHECK: ret | 33 ; CHECK: ret |
| 34 } | 34 } |
| 35 | 35 |
| 36 define float @undef_float() { | 36 define float @undef_float() { |
| 37 entry: | 37 entry: |
| 38 ret float undef | 38 ret float undef |
| 39 ; CHECK-LABEL: undef_float: | 39 ; CHECK-LABEL: undef_float |
| 40 ; CHECK: [L$float$ | 40 ; CHECK: fld dword ptr [0] |
| 41 } | 41 } |
| 42 | 42 |
| 43 define <4 x i1> @undef_v4i1() { | 43 define <4 x i1> @undef_v4i1() { |
| 44 entry: | 44 entry: |
| 45 ret <4 x i1> undef | 45 ret <4 x i1> undef |
| 46 ; CHECK-LABEL: undef_v4i1: | 46 ; CHECK-LABEL: undef_v4i1 |
| 47 ; CHECK: pxor | 47 ; CHECK: pxor |
| 48 } | 48 } |
| 49 | 49 |
| 50 define <8 x i1> @undef_v8i1() { | 50 define <8 x i1> @undef_v8i1() { |
| 51 entry: | 51 entry: |
| 52 ret <8 x i1> undef | 52 ret <8 x i1> undef |
| 53 ; CHECK-LABEL: undef_v8i1: | 53 ; CHECK-LABEL: undef_v8i1 |
| 54 ; CHECK: pxor | 54 ; CHECK: pxor |
| 55 } | 55 } |
| 56 | 56 |
| 57 define <16 x i1> @undef_v16i1() { | 57 define <16 x i1> @undef_v16i1() { |
| 58 entry: | 58 entry: |
| 59 ret <16 x i1> undef | 59 ret <16 x i1> undef |
| 60 ; CHECK-LABEL: undef_v16i1: | 60 ; CHECK-LABEL: undef_v16i1 |
| 61 ; CHECK: pxor | 61 ; CHECK: pxor |
| 62 } | 62 } |
| 63 | 63 |
| 64 define <16 x i8> @undef_v16i8() { | 64 define <16 x i8> @undef_v16i8() { |
| 65 entry: | 65 entry: |
| 66 ret <16 x i8> undef | 66 ret <16 x i8> undef |
| 67 ; CHECK-LABEL: undef_v16i8: | 67 ; CHECK-LABEL: undef_v16i8 |
| 68 ; CHECK: pxor | 68 ; CHECK: pxor |
| 69 } | 69 } |
| 70 | 70 |
| 71 define <8 x i16> @undef_v8i16() { | 71 define <8 x i16> @undef_v8i16() { |
| 72 entry: | 72 entry: |
| 73 ret <8 x i16> undef | 73 ret <8 x i16> undef |
| 74 ; CHECK-LABEL: undef_v8i16: | 74 ; CHECK-LABEL: undef_v8i16 |
| 75 ; CHECK: pxor | 75 ; CHECK: pxor |
| 76 } | 76 } |
| 77 | 77 |
| 78 define <4 x i32> @undef_v4i32() { | 78 define <4 x i32> @undef_v4i32() { |
| 79 entry: | 79 entry: |
| 80 ret <4 x i32> undef | 80 ret <4 x i32> undef |
| 81 ; CHECK-LABEL: undef_v4i32: | 81 ; CHECK-LABEL: undef_v4i32 |
| 82 ; CHECK: pxor | 82 ; CHECK: pxor |
| 83 } | 83 } |
| 84 | 84 |
| 85 define <4 x float> @undef_v4f32() { | 85 define <4 x float> @undef_v4f32() { |
| 86 entry: | 86 entry: |
| 87 ret <4 x float> undef | 87 ret <4 x float> undef |
| 88 ; CHECK-LABEL: undef_v4f32: | 88 ; CHECK-LABEL: undef_v4f32 |
| 89 ; CHECK: pxor | 89 ; CHECK: pxor |
| 90 } | 90 } |
| 91 | 91 |
| 92 define <4 x i32> @vector_arith(<4 x i32> %arg) { | 92 define <4 x i32> @vector_arith(<4 x i32> %arg) { |
| 93 entry: | 93 entry: |
| 94 %val = add <4 x i32> undef, %arg | 94 %val = add <4 x i32> undef, %arg |
| 95 ret <4 x i32> %val | 95 ret <4 x i32> %val |
| 96 ; CHECK-LABEL: vector_arith: | 96 ; CHECK-LABEL: vector_arith |
| 97 ; CHECK: pxor | 97 ; CHECK: pxor |
| 98 } | 98 } |
| 99 | 99 |
| 100 define <4 x float> @vector_bitcast() { | 100 define <4 x float> @vector_bitcast() { |
| 101 entry: | 101 entry: |
| 102 %val = bitcast <4 x i32> undef to <4 x float> | 102 %val = bitcast <4 x i32> undef to <4 x float> |
| 103 ret <4 x float> %val | 103 ret <4 x float> %val |
| 104 ; CHECK-LABEL: vector_bitcast: | 104 ; CHECK-LABEL: vector_bitcast |
| 105 ; CHECK: pxor | 105 ; CHECK: pxor |
| 106 } | 106 } |
| 107 | 107 |
| 108 define <4 x i32> @vector_sext() { | 108 define <4 x i32> @vector_sext() { |
| 109 entry: | 109 entry: |
| 110 %val = sext <4 x i1> undef to <4 x i32> | 110 %val = sext <4 x i1> undef to <4 x i32> |
| 111 ret <4 x i32> %val | 111 ret <4 x i32> %val |
| 112 ; CHECK-LABEL: vector_sext: | 112 ; CHECK-LABEL: vector_sext |
| 113 ; CHECK: pxor | 113 ; CHECK: pxor |
| 114 } | 114 } |
| 115 | 115 |
| 116 define <4 x i32> @vector_zext() { | 116 define <4 x i32> @vector_zext() { |
| 117 entry: | 117 entry: |
| 118 %val = zext <4 x i1> undef to <4 x i32> | 118 %val = zext <4 x i1> undef to <4 x i32> |
| 119 ret <4 x i32> %val | 119 ret <4 x i32> %val |
| 120 ; CHECK-LABEL: vector_zext: | 120 ; CHECK-LABEL: vector_zext |
| 121 ; CHECK: pxor | 121 ; CHECK: pxor |
| 122 } | 122 } |
| 123 | 123 |
| 124 define <4 x i1> @vector_trunc() { | 124 define <4 x i1> @vector_trunc() { |
| 125 entry: | 125 entry: |
| 126 %val = trunc <4 x i32> undef to <4 x i1> | 126 %val = trunc <4 x i32> undef to <4 x i1> |
| 127 ret <4 x i1> %val | 127 ret <4 x i1> %val |
| 128 ; CHECK-LABEL: vector_trunc: | 128 ; CHECK-LABEL: vector_trunc |
| 129 ; CHECK: pxor | 129 ; CHECK: pxor |
| 130 } | 130 } |
| 131 | 131 |
| 132 define <4 x i1> @vector_icmp(<4 x i32> %arg) { | 132 define <4 x i1> @vector_icmp(<4 x i32> %arg) { |
| 133 entry: | 133 entry: |
| 134 %val = icmp eq <4 x i32> undef, %arg | 134 %val = icmp eq <4 x i32> undef, %arg |
| 135 ret <4 x i1> %val | 135 ret <4 x i1> %val |
| 136 ; CHECK-LABEL: vector_icmp: | 136 ; CHECK-LABEL: vector_icmp |
| 137 ; CHECK: pxor | 137 ; CHECK: pxor |
| 138 } | 138 } |
| 139 | 139 |
| 140 define <4 x i1> @vector_fcmp(<4 x float> %arg) { | 140 define <4 x i1> @vector_fcmp(<4 x float> %arg) { |
| 141 entry: | 141 entry: |
| 142 %val = fcmp ueq <4 x float> undef, %arg | 142 %val = fcmp ueq <4 x float> undef, %arg |
| 143 ret <4 x i1> %val | 143 ret <4 x i1> %val |
| 144 ; CHECK-LABEL: vector_fcmp: | 144 ; CHECK-LABEL: vector_fcmp |
| 145 ; CHECK: pxor | 145 ; CHECK: pxor |
| 146 } | 146 } |
| 147 | 147 |
| 148 define <4 x i32> @vector_fptosi() { | 148 define <4 x i32> @vector_fptosi() { |
| 149 entry: | 149 entry: |
| 150 %val = fptosi <4 x float> undef to <4 x i32> | 150 %val = fptosi <4 x float> undef to <4 x i32> |
| 151 ret <4 x i32> %val | 151 ret <4 x i32> %val |
| 152 ; CHECK-LABEL: vector_fptosi: | 152 ; CHECK-LABEL: vector_fptosi |
| 153 ; CHECK: pxor | 153 ; CHECK: pxor |
| 154 } | 154 } |
| 155 | 155 |
| 156 define <4 x i32> @vector_fptoui() { | 156 define <4 x i32> @vector_fptoui() { |
| 157 entry: | 157 entry: |
| 158 %val = fptoui <4 x float> undef to <4 x i32> | 158 %val = fptoui <4 x float> undef to <4 x i32> |
| 159 ret <4 x i32> %val | 159 ret <4 x i32> %val |
| 160 ; CHECK-LABEL: vector_fptoui: | 160 ; CHECK-LABEL: vector_fptoui |
| 161 ; CHECK: pxor | 161 ; CHECK: pxor |
| 162 } | 162 } |
| 163 | 163 |
| 164 define <4 x float> @vector_sitofp() { | 164 define <4 x float> @vector_sitofp() { |
| 165 entry: | 165 entry: |
| 166 %val = sitofp <4 x i32> undef to <4 x float> | 166 %val = sitofp <4 x i32> undef to <4 x float> |
| 167 ret <4 x float> %val | 167 ret <4 x float> %val |
| 168 ; CHECK-LABEL: vector_sitofp: | 168 ; CHECK-LABEL: vector_sitofp |
| 169 ; CHECK: pxor | 169 ; CHECK: pxor |
| 170 } | 170 } |
| 171 | 171 |
| 172 define <4 x float> @vector_uitofp() { | 172 define <4 x float> @vector_uitofp() { |
| 173 entry: | 173 entry: |
| 174 %val = uitofp <4 x i32> undef to <4 x float> | 174 %val = uitofp <4 x i32> undef to <4 x float> |
| 175 ret <4 x float> %val | 175 ret <4 x float> %val |
| 176 ; CHECK-LABEL: vector_uitofp: | 176 ; CHECK-LABEL: vector_uitofp |
| 177 ; CHECK: pxor | 177 ; CHECK: pxor |
| 178 } | 178 } |
| 179 | 179 |
| 180 define <4 x float> @vector_insertelement_arg1() { | 180 define <4 x float> @vector_insertelement_arg1() { |
| 181 entry: | 181 entry: |
| 182 %val = insertelement <4 x float> undef, float 1.0, i32 0 | 182 %val = insertelement <4 x float> undef, float 1.0, i32 0 |
| 183 ret <4 x float> %val | 183 ret <4 x float> %val |
| 184 ; CHECK-LABEL: vector_insertelement_arg1: | 184 ; CHECK-LABEL: vector_insertelement_arg1 |
| 185 ; CHECK: pxor | 185 ; CHECK: pxor |
| 186 } | 186 } |
| 187 | 187 |
| 188 define <4 x float> @vector_insertelement_arg2(<4 x float> %arg) { | 188 define <4 x float> @vector_insertelement_arg2(<4 x float> %arg) { |
| 189 entry: | 189 entry: |
| 190 %val = insertelement <4 x float> %arg, float undef, i32 0 | 190 %val = insertelement <4 x float> %arg, float undef, i32 0 |
| 191 ret <4 x float> %val | 191 ret <4 x float> %val |
| 192 ; CHECK-LABEL: vector_insertelement_arg2: | 192 ; CHECK-LABEL: vector_insertelement_arg2 |
| 193 ; CHECK: [L$float$ | 193 ; CHECK: movss {{.*}}, dword ptr [0] |
| 194 } | 194 } |
| 195 | 195 |
| 196 define float @vector_extractelement_v4f32_index_0() { | 196 define float @vector_extractelement_v4f32_index_0() { |
| 197 entry: | 197 entry: |
| 198 %val = extractelement <4 x float> undef, i32 0 | 198 %val = extractelement <4 x float> undef, i32 0 |
| 199 ret float %val | 199 ret float %val |
| 200 ; CHECK-LABEL: vector_extractelement_v4f32_index_0: | 200 ; CHECK-LABEL: vector_extractelement_v4f32_index_0 |
| 201 ; CHECK: pxor | 201 ; CHECK: pxor |
| 202 } | 202 } |
| 203 | 203 |
| 204 define float @vector_extractelement_v4f32_index_1() { | 204 define float @vector_extractelement_v4f32_index_1() { |
| 205 entry: | 205 entry: |
| 206 %val = extractelement <4 x float> undef, i32 1 | 206 %val = extractelement <4 x float> undef, i32 1 |
| 207 ret float %val | 207 ret float %val |
| 208 ; CHECK-LABEL: vector_extractelement_v4f32_index_1: | 208 ; CHECK-LABEL: vector_extractelement_v4f32_index_1 |
| 209 ; CHECK: pxor | 209 ; CHECK: pxor |
| 210 } | 210 } |
| 211 | 211 |
| 212 define i32 @vector_extractelement_v16i1_index_7() { | 212 define i32 @vector_extractelement_v16i1_index_7() { |
| 213 entry: | 213 entry: |
| 214 %val.trunc = extractelement <16 x i1> undef, i32 7 | 214 %val.trunc = extractelement <16 x i1> undef, i32 7 |
| 215 %val = sext i1 %val.trunc to i32 | 215 %val = sext i1 %val.trunc to i32 |
| 216 ret i32 %val | 216 ret i32 %val |
| 217 ; CHECK-LABEL: vector_extractelement_v16i1_index_7: | 217 ; CHECK-LABEL: vector_extractelement_v16i1_index_7 |
| 218 ; CHECK: pxor | 218 ; CHECK: pxor |
| 219 } | 219 } |
| 220 | 220 |
| 221 define <4 x i32> @vector_select_v4i32_cond(<4 x i32> %a, <4 x i32> %b) { | 221 define <4 x i32> @vector_select_v4i32_cond(<4 x i32> %a, <4 x i32> %b) { |
| 222 entry: | 222 entry: |
| 223 %val = select <4 x i1> undef, <4 x i32> %a, <4 x i32> %b | 223 %val = select <4 x i1> undef, <4 x i32> %a, <4 x i32> %b |
| 224 ret <4 x i32> %val | 224 ret <4 x i32> %val |
| 225 ; CHECK-LABEL: vector_select_v4i32_cond: | 225 ; CHECK-LABEL: vector_select_v4i32_cond |
| 226 ; CHECK: pxor | 226 ; CHECK: pxor |
| 227 } | 227 } |
| 228 | 228 |
| 229 define <4 x i32> @vector_select_v4i32_arg1(<4 x i1> %cond, <4 x i32> %b) { | 229 define <4 x i32> @vector_select_v4i32_arg1(<4 x i1> %cond, <4 x i32> %b) { |
| 230 entry: | 230 entry: |
| 231 %val = select <4 x i1> %cond, <4 x i32> undef, <4 x i32> %b | 231 %val = select <4 x i1> %cond, <4 x i32> undef, <4 x i32> %b |
| 232 ret <4 x i32> %val | 232 ret <4 x i32> %val |
| 233 ; CHECK-LABEL: vector_select_v4i32_arg1: | 233 ; CHECK-LABEL: vector_select_v4i32_arg1 |
| 234 ; CHECK: pxor | 234 ; CHECK: pxor |
| 235 } | 235 } |
| 236 | 236 |
| 237 define <4 x i32> @vector_select_v4i32_arg2(<4 x i1> %cond, <4 x i32> %a) { | 237 define <4 x i32> @vector_select_v4i32_arg2(<4 x i1> %cond, <4 x i32> %a) { |
| 238 entry: | 238 entry: |
| 239 %val = select <4 x i1> %cond, <4 x i32> %a, <4 x i32> undef | 239 %val = select <4 x i1> %cond, <4 x i32> %a, <4 x i32> undef |
| 240 ret <4 x i32> %val | 240 ret <4 x i32> %val |
| 241 ; CHECK-LABEL: vector_select_v4i32_arg2: | 241 ; CHECK-LABEL: vector_select_v4i32_arg2 |
| 242 ; CHECK: pxor | 242 ; CHECK: pxor |
| 243 } | 243 } |
| 244 | 244 |
| 245 define <4 x i1> @vector_select_v4i1_cond(<4 x i1> %a, <4 x i1> %b) { | 245 define <4 x i1> @vector_select_v4i1_cond(<4 x i1> %a, <4 x i1> %b) { |
| 246 entry: | 246 entry: |
| 247 %val = select <4 x i1> undef, <4 x i1> %a, <4 x i1> %b | 247 %val = select <4 x i1> undef, <4 x i1> %a, <4 x i1> %b |
| 248 ret <4 x i1> %val | 248 ret <4 x i1> %val |
| 249 ; CHECK-LABEL: vector_select_v4i1_cond: | 249 ; CHECK-LABEL: vector_select_v4i1_cond |
| 250 ; CHECK: pxor | 250 ; CHECK: pxor |
| 251 } | 251 } |
| 252 | 252 |
| 253 define <4 x i1> @vector_select_v4i1_arg1(<4 x i1> %cond, <4 x i1> %b) { | 253 define <4 x i1> @vector_select_v4i1_arg1(<4 x i1> %cond, <4 x i1> %b) { |
| 254 entry: | 254 entry: |
| 255 %val = select <4 x i1> %cond, <4 x i1> undef, <4 x i1> %b | 255 %val = select <4 x i1> %cond, <4 x i1> undef, <4 x i1> %b |
| 256 ret <4 x i1> %val | 256 ret <4 x i1> %val |
| 257 ; CHECK-LABEL: vector_select_v4i1_arg1: | 257 ; CHECK-LABEL: vector_select_v4i1_arg1 |
| 258 ; CHECK: pxor | 258 ; CHECK: pxor |
| 259 } | 259 } |
| 260 | 260 |
| 261 define <4 x i1> @vector_select_v4i1_arg2(<4 x i1> %cond, <4 x i1> %a) { | 261 define <4 x i1> @vector_select_v4i1_arg2(<4 x i1> %cond, <4 x i1> %a) { |
| 262 entry: | 262 entry: |
| 263 %val = select <4 x i1> %cond, <4 x i1> %a, <4 x i1> undef | 263 %val = select <4 x i1> %cond, <4 x i1> %a, <4 x i1> undef |
| 264 ret <4 x i1> %val | 264 ret <4 x i1> %val |
| 265 ; CHECK-LABEL: vector_select_v4i1_arg2: | 265 ; CHECK-LABEL: vector_select_v4i1_arg2 |
| 266 ; CHECK: pxor | 266 ; CHECK: pxor |
| 267 } | 267 } |
| 268 | 268 |
| 269 define <4 x float> @vector_select_v4f32_cond(<4 x float> %a, <4 x float> %b) { | 269 define <4 x float> @vector_select_v4f32_cond(<4 x float> %a, <4 x float> %b) { |
| 270 entry: | 270 entry: |
| 271 %val = select <4 x i1> undef, <4 x float> %a, <4 x float> %b | 271 %val = select <4 x i1> undef, <4 x float> %a, <4 x float> %b |
| 272 ret <4 x float> %val | 272 ret <4 x float> %val |
| 273 ; CHECK-LABEL: vector_select_v4f32_cond: | 273 ; CHECK-LABEL: vector_select_v4f32_cond |
| 274 ; CHECK: pxor | 274 ; CHECK: pxor |
| 275 } | 275 } |
| 276 | 276 |
| 277 define <4 x float> @vector_select_v4f32_arg1(<4 x i1> %cond, <4 x float> %b) { | 277 define <4 x float> @vector_select_v4f32_arg1(<4 x i1> %cond, <4 x float> %b) { |
| 278 entry: | 278 entry: |
| 279 %val = select <4 x i1> %cond, <4 x float> undef, <4 x float> %b | 279 %val = select <4 x i1> %cond, <4 x float> undef, <4 x float> %b |
| 280 ret <4 x float> %val | 280 ret <4 x float> %val |
| 281 ; CHECK-LABEL: vector_select_v4f32_arg1: | 281 ; CHECK-LABEL: vector_select_v4f32_arg1 |
| 282 ; CHECK: pxor | 282 ; CHECK: pxor |
| 283 } | 283 } |
| 284 | 284 |
| 285 define <4 x float> @vector_select_v4f32_arg2(<4 x i1> %cond, <4 x float> %a) { | 285 define <4 x float> @vector_select_v4f32_arg2(<4 x i1> %cond, <4 x float> %a) { |
| 286 entry: | 286 entry: |
| 287 %val = select <4 x i1> %cond, <4 x float> %a, <4 x float> undef | 287 %val = select <4 x i1> %cond, <4 x float> %a, <4 x float> undef |
| 288 ret <4 x float> %val | 288 ret <4 x float> %val |
| 289 ; CHECK-LABEL: vector_select_v4f32_arg2: | 289 ; CHECK-LABEL: vector_select_v4f32_arg2 |
| 290 ; CHECK: pxor | 290 ; CHECK: pxor |
| 291 } | 291 } |
| 292 | 292 |
| 293 ; ERRORS-NOT: ICE translation error | 293 ; ERRORS-NOT: ICE translation error |
| 294 ; DUMP-NOT: SZ | 294 ; DUMP-NOT: SZ |
| OLD | NEW |