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

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

Powered by Google App Engine
This is Rietveld 408576698