Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(629)

Side by Side Diff: tests_lit/assembler/arm32/xor-vec.ll

Issue 1655363002: Add vector VEOR instruction to the integrated ARM assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Add DART file. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTargetLoweringARM32.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Show that we know how to translate veor vector instructions. 1 ; Show that we know how to translate veor vector instructions.
2 2
3 ; REQUIRES: allow_dump 3 ; REQUIRES: allow_dump
4 4
5 ; Compile using standalone assembler. 5 ; Compile using standalone assembler.
6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ 6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \
7 ; RUN: | FileCheck %s --check-prefix=ASM 7 ; RUN: | FileCheck %s --check-prefix=ASM
8 8
9 ; Show bytes in assembled standalone code. 9 ; Show bytes in assembled standalone code.
10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
(...skipping 12 matching lines...) Expand all
23 define internal <4 x i32> @testVxor4i32(<4 x i32> %v1, <4 x i32> %v2) { 23 define internal <4 x i32> @testVxor4i32(<4 x i32> %v1, <4 x i32> %v2) {
24 ; ASM-LABEL: testVxor4i32: 24 ; ASM-LABEL: testVxor4i32:
25 ; DIS-LABEL: 00000000 <testVxor4i32>: 25 ; DIS-LABEL: 00000000 <testVxor4i32>:
26 ; IASM-LABEL: testVxor4i32: 26 ; IASM-LABEL: testVxor4i32:
27 27
28 entry: 28 entry:
29 %res = xor <4 x i32> %v1, %v2 29 %res = xor <4 x i32> %v1, %v2
30 30
31 ; ASM: veor.i32 q0, q0, q1 31 ; ASM: veor.i32 q0, q0, q1
32 ; DIS: 0: f3000152 32 ; DIS: 0: f3000152
33 ; IASM: veor.i32 33 ; IASM-NOT: veor.i32
34 34
35 ret <4 x i32> %res 35 ret <4 x i32> %res
36 } 36 }
37 37
38 define internal <8 x i16> @testVxor8i16(<8 x i16> %v1, <8 x i16> %v2) { 38 define internal <8 x i16> @testVxor8i16(<8 x i16> %v1, <8 x i16> %v2) {
39 ; ASM-LABEL: testVxor8i16: 39 ; ASM-LABEL: testVxor8i16:
40 ; DIS-LABEL: 00000010 <testVxor8i16>: 40 ; DIS-LABEL: 00000010 <testVxor8i16>:
41 ; IASM-LABEL: testVxor8i16: 41 ; IASM-LABEL: testVxor8i16:
42 42
43 entry: 43 entry:
44 %res = xor <8 x i16> %v1, %v2 44 %res = xor <8 x i16> %v1, %v2
45 45
46 ; ASM: veor.i16 q0, q0, q1 46 ; ASM: veor.i16 q0, q0, q1
47 ; DIS: 10: f3000152 47 ; DIS: 10: f3000152
48 ; IASM: veor.i16 48 ; IASM-NOT: veor.i16
49 49
50 ret <8 x i16> %res 50 ret <8 x i16> %res
51 } 51 }
52 52
53 define internal <16 x i8> @testVxor16i8(<16 x i8> %v1, <16 x i8> %v2) { 53 define internal <16 x i8> @testVxor16i8(<16 x i8> %v1, <16 x i8> %v2) {
54 ; ASM-LABEL: testVxor16i8: 54 ; ASM-LABEL: testVxor16i8:
55 ; DIS-LABEL: 00000020 <testVxor16i8>: 55 ; DIS-LABEL: 00000020 <testVxor16i8>:
56 ; IASM-LABEL: testVxor16i8: 56 ; IASM-LABEL: testVxor16i8:
57 57
58 entry: 58 entry:
59 %res = xor <16 x i8> %v1, %v2 59 %res = xor <16 x i8> %v1, %v2
60 60
61 ; ASM: veor.i8 q0, q0, q1 61 ; ASM: veor.i8 q0, q0, q1
62 ; DIS: 20: f3000152 62 ; DIS: 20: f3000152
63 ; IASM: veor.i8 63 ; IASM-NOT: veor.i8
64 64
65 ret <16 x i8> %res 65 ret <16 x i8> %res
66 } 66 }
67 67
68 ;; 68 ;;
69 ;; The following tests make sure logical xor works on predicate vectors. 69 ;; The following tests make sure logical xor works on predicate vectors.
70 ;; 70 ;;
71 71
72 define internal <4 x i1> @testVxor4i1(<4 x i1> %v1, <4 x i1> %v2) { 72 define internal <4 x i1> @testVxor4i1(<4 x i1> %v1, <4 x i1> %v2) {
73 ; ASM-LABEL: testVxor4i1: 73 ; ASM-LABEL: testVxor4i1:
74 ; DIS-LABEL: 00000030 <testVxor4i1>: 74 ; DIS-LABEL: 00000030 <testVxor4i1>:
75 ; IASM-LABEL: testVxor4i1: 75 ; IASM-LABEL: testVxor4i1:
76 76
77 entry: 77 entry:
78 %res = xor <4 x i1> %v1, %v2 78 %res = xor <4 x i1> %v1, %v2
79 79
80 ; ASM: veor.i32 q0, q0, q1 80 ; ASM: veor.i32 q0, q0, q1
81 ; DIS: 30: f3000152 81 ; DIS: 30: f3000152
82 ; IASM: veor.i32 82 ; IASM-NOT: veor.i32
83 83
84 ret <4 x i1> %res 84 ret <4 x i1> %res
85 } 85 }
86 86
87 define internal <8 x i1> @testVxor8i1(<8 x i1> %v1, <8 x i1> %v2) { 87 define internal <8 x i1> @testVxor8i1(<8 x i1> %v1, <8 x i1> %v2) {
88 ; ASM-LABEL: testVxor8i1: 88 ; ASM-LABEL: testVxor8i1:
89 ; DIS-LABEL: 00000040 <testVxor8i1>: 89 ; DIS-LABEL: 00000040 <testVxor8i1>:
90 ; IASM-LABEL: testVxor8i1: 90 ; IASM-LABEL: testVxor8i1:
91 91
92 entry: 92 entry:
93 %res = xor <8 x i1> %v1, %v2 93 %res = xor <8 x i1> %v1, %v2
94 94
95 ; ASM: veor.i16 q0, q0, q1 95 ; ASM: veor.i16 q0, q0, q1
96 ; DIS: 40: f3000152 96 ; DIS: 40: f3000152
97 ; IASM: veor.i16 97 ; IASM-NOT: veor.i16
98 98
99 ret <8 x i1> %res 99 ret <8 x i1> %res
100 } 100 }
101 101
102 define internal <16 x i1> @testVxor16i1(<16 x i1> %v1, <16 x i1> %v2) { 102 define internal <16 x i1> @testVxor16i1(<16 x i1> %v1, <16 x i1> %v2) {
103 ; ASM-LABEL: testVxor16i1: 103 ; ASM-LABEL: testVxor16i1:
104 ; DIS-LABEL: 00000050 <testVxor16i1>: 104 ; DIS-LABEL: 00000050 <testVxor16i1>:
105 ; IASM-LABEL: testVxor16i1: 105 ; IASM-LABEL: testVxor16i1:
106 106
107 entry: 107 entry:
108 %res = xor <16 x i1> %v1, %v2 108 %res = xor <16 x i1> %v1, %v2
109 109
110 ; ASM: veor.i8 q0, q0, q1 110 ; ASM: veor.i8 q0, q0, q1
111 ; DIS: 50: f3000152 111 ; DIS: 50: f3000152
112 ; IASM: veor.i8 112 ; IASM-NOT: veor.i8
113 113
114 ret <16 x i1> %res 114 ret <16 x i1> %res
115 } 115 }
OLDNEW
« no previous file with comments | « src/IceTargetLoweringARM32.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698