OLD | NEW |
1 ; Test that we handle icmp and fcmp on vectors. | 1 ; Test that we handle icmp and fcmp on vectors. |
2 | 2 |
3 ; TODO(eholk): This test will need to be updated once comparison is no | 3 ; TODO(eholk): This test will need to be updated once comparison is no |
4 ; longer scalarized. | 4 ; longer scalarized. |
5 | 5 |
6 ; REQUIRES: allow_dump | 6 ; REQUIRES: allow_dump |
7 | 7 |
8 ; Compile using standalone assembler. | 8 ; Compile using standalone assembler. |
9 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ | 9 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ |
10 ; RUN: | FileCheck %s --check-prefix=ASM | 10 ; RUN: | FileCheck %s --check-prefix=ASM |
(...skipping 18 matching lines...) Expand all Loading... |
29 ; ASM: cmp r1, r2 | 29 ; ASM: cmp r1, r2 |
30 ; ASM: cmp r1, r2 | 30 ; ASM: cmp r1, r2 |
31 ; DIS: 40: e1510002 | 31 ; DIS: 40: e1510002 |
32 | 32 |
33 %cmp.ret_ext = zext <4 x i1> %cmp to <4 x i32> | 33 %cmp.ret_ext = zext <4 x i1> %cmp to <4 x i32> |
34 ret <4 x i32> %cmp.ret_ext | 34 ret <4 x i32> %cmp.ret_ext |
35 } | 35 } |
36 | 36 |
37 define internal <4 x i32> @cmpEq4f32(<4 x float> %a, <4 x float> %b) { | 37 define internal <4 x i32> @cmpEq4f32(<4 x float> %a, <4 x float> %b) { |
38 ; ASM-LABEL:cmpEq4f32: | 38 ; ASM-LABEL:cmpEq4f32: |
39 ; DIS-LABEL:00000240 <cmpEq4f32>: | 39 ; DIS-LABEL:00000180 <cmpEq4f32>: |
40 | 40 |
41 entry: | 41 entry: |
42 %cmp = fcmp oeq <4 x float> %a, %b | 42 %cmp = fcmp oeq <4 x float> %a, %b |
43 | 43 |
44 ; ASM: vcmp.f32 s0, s1 | 44 ; ASM: vcmp.f32 s0, s1 |
45 ; ASM: vcmp.f32 s0, s1 | 45 ; ASM: vcmp.f32 s0, s1 |
46 ; ASM: vcmp.f32 s0, s1 | 46 ; ASM: vcmp.f32 s0, s1 |
47 ; ASM: vcmp.f32 s0, s1 | 47 ; ASM: vcmp.f32 s0, s1 |
48 ; DIS: 27c: eeb40a60 | 48 ; DIS: 1bc: eeb40a60 |
49 | 49 |
50 %cmp.ret_ext = zext <4 x i1> %cmp to <4 x i32> | 50 %cmp.ret_ext = zext <4 x i1> %cmp to <4 x i32> |
51 ret <4 x i32> %cmp.ret_ext | 51 ret <4 x i32> %cmp.ret_ext |
52 } | 52 } |
OLD | NEW |