OLD | NEW |
1 ; This file checks support for comparing vector values with the fcmp | 1 ; This file checks support for comparing vector values with the fcmp |
2 ; instruction. | 2 ; instruction. |
3 | 3 |
4 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 | FileCheck %s | 4 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -O2 | FileCheck %s |
5 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 | FileCheck %s | 5 ; RUN: %p2i -i %s --filetype=obj --disassemble -a -Om1 | FileCheck %s |
6 | 6 |
7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ | 7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ |
8 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ | 8 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ |
9 ; RUN: -i %s --args -O2 --skip-unimplemented \ | 9 ; RUN: -i %s --args -O2 \ |
10 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ | 10 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ |
11 ; RUN: --command FileCheck --check-prefix MIPS32 %s | 11 ; RUN: --command FileCheck --check-prefix MIPS32 %s |
12 | 12 |
13 ; Check that sext elimination occurs when the result of the comparison | 13 ; Check that sext elimination occurs when the result of the comparison |
14 ; instruction is alrady sign extended. Sign extension to 4 x i32 uses | 14 ; instruction is alrady sign extended. Sign extension to 4 x i32 uses |
15 ; the pslld instruction. | 15 ; the pslld instruction. |
16 define internal <4 x i32> @sextElimination(<4 x float> %a, <4 x float> %b) { | 16 define internal <4 x i32> @sextElimination(<4 x float> %a, <4 x float> %b) { |
17 entry: | 17 entry: |
18 %res.trunc = fcmp oeq <4 x float> %a, %b | 18 %res.trunc = fcmp oeq <4 x float> %a, %b |
19 %res = sext <4 x i1> %res.trunc to <4 x i32> | 19 %res = sext <4 x i1> %res.trunc to <4 x i32> |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 ; MIPS32: movf [[R]],zero,$fcc0 | 368 ; MIPS32: movf [[R]],zero,$fcc0 |
369 ; MIPS32: c.un.s | 369 ; MIPS32: c.un.s |
370 ; MIPS32: li [[R:.*]],1 | 370 ; MIPS32: li [[R:.*]],1 |
371 ; MIPS32: movf [[R]],zero,$fcc0 | 371 ; MIPS32: movf [[R]],zero,$fcc0 |
372 ; MIPS32: c.un.s | 372 ; MIPS32: c.un.s |
373 ; MIPS32: li [[R:.*]],1 | 373 ; MIPS32: li [[R:.*]],1 |
374 ; MIPS32: movf [[R]],zero,$fcc0 | 374 ; MIPS32: movf [[R]],zero,$fcc0 |
375 ; MIPS32: c.un.s | 375 ; MIPS32: c.un.s |
376 ; MIPS32: li [[R:.*]],1 | 376 ; MIPS32: li [[R:.*]],1 |
377 ; MIPS32: movf [[R]],zero,$fcc0 | 377 ; MIPS32: movf [[R]],zero,$fcc0 |
OLD | NEW |