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

Side by Side Diff: tests_lit/assembler/arm32/lsl.ll

Issue 1881623002: Subzero. ARM32. Vector shifts. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fixes GPLUSPLUS build Created 4 years, 8 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 | « tests_lit/assembler/arm32/asr.ll ('k') | tests_lit/assembler/arm32/lsr.ll » ('j') | 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 lsl. 1 ; Show that we know how to translate lsl.
2 2
3 ; NOTE: We use -O2 to get rid of memory stores. 3 ; NOTE: We use -O2 to get rid of memory stores.
4 4
5 ; REQUIRES: allow_dump 5 ; REQUIRES: allow_dump
6 6
7 ; Compile using standalone assembler. 7 ; Compile using standalone assembler.
8 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ 8 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \
9 ; RUN: | FileCheck %s --check-prefix=ASM 9 ; RUN: | FileCheck %s --check-prefix=ASM
10 10
(...skipping 15 matching lines...) Expand all
26 ; IASM-LABEL:ShlAmt: 26 ; IASM-LABEL:ShlAmt:
27 27
28 entry: 28 entry:
29 ; ASM-NEXT:.LShlAmt$entry: 29 ; ASM-NEXT:.LShlAmt$entry:
30 ; IASM-NEXT:.LShlAmt$entry: 30 ; IASM-NEXT:.LShlAmt$entry:
31 31
32 %shl = shl i32 %a, 23 32 %shl = shl i32 %a, 23
33 33
34 ; ASM-NEXT: lsl r0, r0, #23 34 ; ASM-NEXT: lsl r0, r0, #23
35 ; DIS-NEXT: 0: e1a00b80 35 ; DIS-NEXT: 0: e1a00b80
36 ; IASM-NEXT: .byte 0x80 36 ; IASM-NOT: lsl
37 ; IASM-NEXT: .byte 0xb
38 ; IASM-NEXT: .byte 0xa0
39 ; IASM-NEXT: .byte 0xe1
40 37
41 ret i32 %shl 38 ret i32 %shl
42 } 39 }
43 40
44 define internal i32 @ShlReg(i32 %a, i32 %b) { 41 define internal i32 @ShlReg(i32 %a, i32 %b) {
45 ; ASM-LABEL:ShlReg: 42 ; ASM-LABEL:ShlReg:
46 ; DIS-LABEL:00000010 <ShlReg>: 43 ; DIS-LABEL:00000010 <ShlReg>:
47 ; IASM-LABEL:ShlReg: 44 ; IASM-LABEL:ShlReg:
48 45
49 entry: 46 entry:
50 ; ASM-NEXT:.LShlReg$entry: 47 ; ASM-NEXT:.LShlReg$entry:
51 ; IASM-NEXT:.LShlReg$entry: 48 ; IASM-NEXT:.LShlReg$entry:
52 49
53 %shl = shl i32 %a, %b 50 %shl = shl i32 %a, %b
54 51
55 ; ASM-NEXT: lsl r0, r0, r1 52 ; ASM-NEXT: lsl r0, r0, r1
56 ; DIS-NEXT: 10: e1a00110 53 ; DIS-NEXT: 10: e1a00110
57 ; IASM-NEXT: .byte 0x10 54 ; IASM-NOT: lsl
58 ; IASM-NEXT: .byte 0x1
59 ; IASM-NEXT: .byte 0xa0
60 ; IASM-NEXT: .byte 0xe1
61 55
62 ret i32 %shl 56 ret i32 %shl
63 } 57 }
64 58
65 define internal <4 x i32> @ShlVec(<4 x i32> %a, <4 x i32> %b) { 59 define internal <4 x i32> @ShlVec(<4 x i32> %a, <4 x i32> %b) {
66 ; ASM-LABEL:ShlVec: 60 ; ASM-LABEL:ShlVec:
67 ; DIS-LABEL:00000020 <ShlVec>: 61 ; DIS-LABEL:00000020 <ShlVec>:
68 ; IASM-LABEL:ShlVec: 62 ; IASM-LABEL:ShlVec:
69 63
70 entry: 64 entry:
71 ; ASM-NEXT:.LShlVec$entry: 65 ; ASM-NEXT:.LShlVec$entry:
72 ; IASM-NEXT:.LShlVec$entry: 66 ; IASM-NEXT:.LShlVec$entry:
73 67
74 %shl = shl <4 x i32> %a, %b 68 %shl = shl <4 x i32> %a, %b
75 69
76 ; ASM: lsl r0, r0, r1 70 ; ASM: vshl.u32 q0, q0, q1
77 ; ASM: lsl r0, r0, r1 71 ; DIS: 20: f3220440
78 ; ASM: lsl r0, r0, r1 72 ; IASM-NOT: vshl
79 ; ASM: lsl r0, r0, r1
80 ; DIS: 28: e1a00110
81 73
82 ret <4 x i32> %shl 74 ret <4 x i32> %shl
83 } 75 }
84 76
85 define internal <8 x i16> @ShlVeci16(<8 x i16> %a, <8 x i16> %b) { 77 define internal <8 x i16> @ShlVeci16(<8 x i16> %a, <8 x i16> %b) {
86 ; ASM-LABEL:ShlVeci16: 78 ; ASM-LABEL:ShlVeci16:
87 79
88 entry: 80 entry:
89 81
90 %v = shl <8 x i16> %a, %b 82 %v = shl <8 x i16> %a, %b
91 83
92 ; ASM: lsl r0, r0, r1 84 ; ASM: vshl.u16 q0, q0, q1
93 ; ASM: lsl r0, r0, r1 85 ; DIS: 30: f3120440
94 ; ASM: lsl r0, r0, r1 86 ; IASM-NOT: vshl
95 ; ASM: lsl r0, r0, r1
96 ; ASM: lsl r0, r0, r1
97 ; ASM: lsl r0, r0, r1
98 ; ASM: lsl r0, r0, r1
99 ; ASM: lsl r0, r0, r1
100 87
101 ret <8 x i16> %v 88 ret <8 x i16> %v
102 } 89 }
103 90
104 define internal <16 x i8> @ShlVeci8(<16 x i8> %a, <16 x i8> %b) { 91 define internal <16 x i8> @ShlVeci8(<16 x i8> %a, <16 x i8> %b) {
105 ; ASM-LABEL:ShlVeci8: 92 ; ASM-LABEL:ShlVeci8:
106 93
107 entry: 94 entry:
108 95
109 %v = shl <16 x i8> %a, %b 96 %v = shl <16 x i8> %a, %b
110 97
111 ; ASM: lsl r0, r0, r1 98 ; ASM: vshl.u8 q0, q0, q1
112 ; ASM: lsl r0, r0, r1 99 ; DIS: 40: f3020440
113 ; ASM: lsl r0, r0, r1 100 ; IASM-NOT: vshl
114 ; ASM: lsl r0, r0, r1
115 ; ASM: lsl r0, r0, r1
116 ; ASM: lsl r0, r0, r1
117 ; ASM: lsl r0, r0, r1
118 ; ASM: lsl r0, r0, r1
119 ; ASM: lsl r0, r0, r1
120 ; ASM: lsl r0, r0, r1
121 ; ASM: lsl r0, r0, r1
122 ; ASM: lsl r0, r0, r1
123 ; ASM: lsl r0, r0, r1
124 ; ASM: lsl r0, r0, r1
125 ; ASM: lsl r0, r0, r1
126 ; ASM: lsl r0, r0, r1
127 101
128 ret <16 x i8> %v 102 ret <16 x i8> %v
129 } 103 }
OLDNEW
« no previous file with comments | « tests_lit/assembler/arm32/asr.ll ('k') | tests_lit/assembler/arm32/lsr.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698