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

Side by Side Diff: tests_lit/assembler/arm32/lsr.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/lsl.ll ('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 lsr. 1 ; Show that we know how to translate lsr.
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:LshrAmt: 26 ; IASM-LABEL:LshrAmt:
27 27
28 entry: 28 entry:
29 ; ASM-NEXT:.LLshrAmt$entry: 29 ; ASM-NEXT:.LLshrAmt$entry:
30 ; IASM-NEXT:.LLshrAmt$entry: 30 ; IASM-NEXT:.LLshrAmt$entry:
31 31
32 %v = lshr i32 %a, 23 32 %v = lshr i32 %a, 23
33 33
34 ; ASM-NEXT: lsr r0, r0, #23 34 ; ASM-NEXT: lsr r0, r0, #23
35 ; DIS-NEXT: 0: e1a00ba0 35 ; DIS-NEXT: 0: e1a00ba0
36 ; IASM-NEXT: .byte 0xa0 36 ; IASM-NOT: lsr
37 ; IASM-NEXT: .byte 0xb
38 ; IASM-NEXT: .byte 0xa0
39 ; IASM-NEXT: .byte 0xe1
40 37
41 ret i32 %v 38 ret i32 %v
42 } 39 }
43 40
44 define internal i32 @LshrReg(i32 %a, i32 %b) { 41 define internal i32 @LshrReg(i32 %a, i32 %b) {
45 ; ASM-LABEL:LshrReg: 42 ; ASM-LABEL:LshrReg:
46 ; DIS-LABEL:00000010 <LshrReg>: 43 ; DIS-LABEL:00000010 <LshrReg>:
47 ; IASM-LABEL:LshrReg: 44 ; IASM-LABEL:LshrReg:
48 45
49 entry: 46 entry:
50 ; ASM-NEXT:.LLshrReg$entry: 47 ; ASM-NEXT:.LLshrReg$entry:
51 ; IASM-NEXT:.LLshrReg$entry: 48 ; IASM-NEXT:.LLshrReg$entry:
52 49
53 %v = lshr i32 %a, %b 50 %v = lshr i32 %a, %b
54 51
55 ; ASM-NEXT: lsr r0, r0, r1 52 ; ASM-NEXT: lsr r0, r0, r1
56 ; DIS-NEXT: 10: e1a00130 53 ; DIS-NEXT: 10: e1a00130
57 ; IASM-NEXT: .byte 0x30 54 ; IASM-NOT: lsr
58 ; IASM-NEXT: .byte 0x1
59 ; IASM-NEXT: .byte 0xa0
60 ; IASM-NEXT: .byte 0xe1
61 55
62 ret i32 %v 56 ret i32 %v
63 } 57 }
64 58
65 define internal <4 x i32> @LshrVec(<4 x i32> %a, <4 x i32> %b) { 59 define internal <4 x i32> @LshrVec(<4 x i32> %a, <4 x i32> %b) {
66 ; ASM-LABEL:LshrVec: 60 ; ASM-LABEL:LshrVec:
67 ; DIS-LABEL:00000020 <LshrVec>: 61 ; DIS-LABEL:00000020 <LshrVec>:
68 ; IASM-LABEL:LshrVec: 62 ; IASM-LABEL:LshrVec:
69 63
70 entry: 64 entry:
71 ; ASM-NEXT:.LLshrVec$entry: 65 ; ASM-NEXT:.LLshrVec$entry:
72 ; IASM-NEXT:.LLshrVec$entry: 66 ; IASM-NEXT:.LLshrVec$entry:
73 67
74 %v = lshr <4 x i32> %a, %b 68 %v = lshr <4 x i32> %a, %b
75 69
76 ; ASM: lsr r0, r0, r1 70 ; ASM: vneg.s32 q1, q1
77 ; ASM: lsr r0, r0, r1 71 ; ASM-NEXT: vshl.u32 q0, q0, q1
78 ; ASM: lsr r0, r0, r1 72 ; DIS: 20: f3b923c2
79 ; ASM: lsr r0, r0, r1 73 ; DIS: 24: f3220440
80 ; DIS: 28: e1a00130 74 ; IASM-NOT: vneg
75 ; IASM-NOT: vshl
81 76
82 ret <4 x i32> %v 77 ret <4 x i32> %v
83 } 78 }
84 79
85 define internal <8 x i16> @LshrVeci16(<8 x i16> %a, <8 x i16> %b) { 80 define internal <8 x i16> @LshrVeci16(<8 x i16> %a, <8 x i16> %b) {
86 ; ASM-LABEL:LshrVeci16: 81 ; ASM-LABEL:LshrVeci16:
87 82
88 entry: 83 entry:
89 84
90 %v = lshr <8 x i16> %a, %b 85 %v = lshr <8 x i16> %a, %b
91 86
92 ; ASM: lsr r0, r0, r1 87 ; ASM: vneg.s16 q1, q1
93 ; ASM: lsr r0, r0, r1 88 ; ASM-NEXT: vshl.u16 q0, q0, q1
94 ; ASM: lsr r0, r0, r1 89 ; DIS: 30: f3b523c2
95 ; ASM: lsr r0, r0, r1 90 ; DIS: 34: f3120440
96 ; ASM: lsr r0, r0, r1 91 ; IASM-NOT: vneg
97 ; ASM: lsr r0, r0, r1 92 ; IASM-NOT: vshl
98 ; ASM: lsr r0, r0, r1
99 ; ASM: lsr r0, r0, r1
100 93
101 ret <8 x i16> %v 94 ret <8 x i16> %v
102 } 95 }
103 96
104 define internal <16 x i8> @LshrVeci8(<16 x i8> %a, <16 x i8> %b) { 97 define internal <16 x i8> @LshrVeci8(<16 x i8> %a, <16 x i8> %b) {
105 ; ASM-LABEL:LshrVeci8: 98 ; ASM-LABEL:LshrVeci8:
106 99
107 entry: 100 entry:
108 101
109 %v = lshr <16 x i8> %a, %b 102 %v = lshr <16 x i8> %a, %b
110 103
111 ; ASM: lsr r0, r0, r1 104 ; ASM: vneg.s8 q1, q1
112 ; ASM: lsr r0, r0, r1 105 ; ASM-NEXT: vshl.u8 q0, q0, q1
113 ; ASM: lsr r0, r0, r1 106 ; DIS: 40: f3b123c2
114 ; ASM: lsr r0, r0, r1 107 ; DIS: 44: f3020440
115 ; ASM: lsr r0, r0, r1 108 ; IASM-NOT: vneg
116 ; ASM: lsr r0, r0, r1 109 ; IASM-NOT: vshl
117 ; ASM: lsr r0, r0, r1
118 ; ASM: lsr r0, r0, r1
119 ; ASM: lsr r0, r0, r1
120 ; ASM: lsr r0, r0, r1
121 ; ASM: lsr r0, r0, r1
122 ; ASM: lsr r0, r0, r1
123 ; ASM: lsr r0, r0, r1
124 ; ASM: lsr r0, r0, r1
125 ; ASM: lsr r0, r0, r1
126 ; ASM: lsr r0, r0, r1
127 110
128 ret <16 x i8> %v 111 ret <16 x i8> %v
129 } 112 }
OLDNEW
« no previous file with comments | « tests_lit/assembler/arm32/lsl.ll ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698