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

Side by Side Diff: tests_lit/assembler/x86/opcode_register_encodings.ll

Issue 1161543005: Subzero: Changes needed for LLVM 3.7 integration. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 6 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/IceInst.cpp ('k') | tests_lit/llvm2ice_tests/64bit.pnacl.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 ; Tests various aspects of x86 opcode encodings. E.g., some opcodes like 1 ; Tests various aspects of x86 opcode encodings. E.g., some opcodes like
2 ; those for pmull vary more wildly depending on operand size (rather than 2 ; those for pmull vary more wildly depending on operand size (rather than
3 ; follow a usual pattern). 3 ; follow a usual pattern).
4 4
5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 -mattr=sse4.1 \ 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 -mattr=sse4.1 \
6 ; RUN: -sandbox | FileCheck %s 6 ; RUN: -sandbox | FileCheck %s
7 7
8 define <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) { 8 define <8 x i16> @test_mul_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
9 entry: 9 entry:
10 %res = mul <8 x i16> %arg0, %arg1 10 %res = mul <8 x i16> %arg0, %arg1
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 store <16 x i8> %v, <16 x i8>* %addr3_v16xI8, align 1 108 store <16 x i8> %v, <16 x i8>* %addr3_v16xI8, align 1
109 ret void 109 ret void
110 } 110 }
111 ; CHECK-LABEL: store_v16xI8 111 ; CHECK-LABEL: store_v16xI8
112 ; CHECK: 0f 11 0{{.*}} movups XMMWORD PTR [e{{.*}}],xmm0 112 ; CHECK: 0f 11 0{{.*}} movups XMMWORD PTR [e{{.*}}],xmm0
113 113
114 define <16 x i8> @load_v16xI8(i32 %addr, i32 %addr2, i32 %addr3) { 114 define <16 x i8> @load_v16xI8(i32 %addr, i32 %addr2, i32 %addr3) {
115 %addr_v16xI8 = inttoptr i32 %addr to <16 x i8>* 115 %addr_v16xI8 = inttoptr i32 %addr to <16 x i8>*
116 %addr2_v16xI8 = inttoptr i32 %addr2 to <16 x i8>* 116 %addr2_v16xI8 = inttoptr i32 %addr2 to <16 x i8>*
117 %addr3_v16xI8 = inttoptr i32 %addr3 to <16 x i8>* 117 %addr3_v16xI8 = inttoptr i32 %addr3 to <16 x i8>*
118 %res1 = load <16 x i8>* %addr2_v16xI8, align 1 118 %res1 = load <16 x i8>, <16 x i8>* %addr2_v16xI8, align 1
119 %res2 = load <16 x i8>* %addr_v16xI8, align 1 119 %res2 = load <16 x i8>, <16 x i8>* %addr_v16xI8, align 1
120 %res3 = load <16 x i8>* %addr3_v16xI8, align 1 120 %res3 = load <16 x i8>, <16 x i8>* %addr3_v16xI8, align 1
121 %res12 = add <16 x i8> %res1, %res2 121 %res12 = add <16 x i8> %res1, %res2
122 %res123 = add <16 x i8> %res12, %res3 122 %res123 = add <16 x i8> %res12, %res3
123 ret <16 x i8> %res123 123 ret <16 x i8> %res123
124 } 124 }
125 ; CHECK-LABEL: load_v16xI8 125 ; CHECK-LABEL: load_v16xI8
126 ; CHECK: 0f 10 0{{.*}} movups xmm0,XMMWORD PTR [e{{.*}}] 126 ; CHECK: 0f 10 0{{.*}} movups xmm0,XMMWORD PTR [e{{.*}}]
127 127
128 ; Test segment override prefix. This happens w/ nacl.read.tp. 128 ; Test segment override prefix. This happens w/ nacl.read.tp.
129 declare i8* @llvm.nacl.read.tp() 129 declare i8* @llvm.nacl.read.tp()
130 130
131 ; Also test more address complex operands via address-mode-optimization. 131 ; Also test more address complex operands via address-mode-optimization.
132 define i32 @test_nacl_read_tp_more_addressing() { 132 define i32 @test_nacl_read_tp_more_addressing() {
133 entry: 133 entry:
134 %ptr = call i8* @llvm.nacl.read.tp() 134 %ptr = call i8* @llvm.nacl.read.tp()
135 %__1 = ptrtoint i8* %ptr to i32 135 %__1 = ptrtoint i8* %ptr to i32
136 %x = add i32 %__1, %__1 136 %x = add i32 %__1, %__1
137 %__3 = inttoptr i32 %x to i32* 137 %__3 = inttoptr i32 %x to i32*
138 %v = load i32* %__3, align 1 138 %v = load i32, i32* %__3, align 1
139 %v_add = add i32 %v, 1 139 %v_add = add i32 %v, 1
140 140
141 %ptr2 = call i8* @llvm.nacl.read.tp() 141 %ptr2 = call i8* @llvm.nacl.read.tp()
142 %__6 = ptrtoint i8* %ptr2 to i32 142 %__6 = ptrtoint i8* %ptr2 to i32
143 %y = add i32 %__6, -128 143 %y = add i32 %__6, -128
144 %__8 = inttoptr i32 %y to i32* 144 %__8 = inttoptr i32 %y to i32*
145 %v_add2 = add i32 %v, 4 145 %v_add2 = add i32 %v, 4
146 store i32 %v_add2, i32* %__8, align 1 146 store i32 %v_add2, i32* %__8, align 1
147 147
148 %z = add i32 %__6, 256 148 %z = add i32 %__6, 256
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 three: 284 three:
285 %res3 = extractelement <8 x i16> %vec4, i32 7 285 %res3 = extractelement <8 x i16> %vec4, i32 7
286 %res3_ext = zext i16 %res3 to i32 286 %res3_ext = zext i16 %res3 to i32
287 ret i32 %res3_ext 287 ret i32 %res3_ext
288 } 288 }
289 ; CHECK-LABEL: test_pextrw 289 ; CHECK-LABEL: test_pextrw
290 ; CHECK-DAG: 66 0f c5 c0 00 pextrw eax,xmm0 290 ; CHECK-DAG: 66 0f c5 c0 00 pextrw eax,xmm0
291 ; CHECK-DAG: 66 0f c5 c1 02 pextrw eax,xmm1 291 ; CHECK-DAG: 66 0f c5 c1 02 pextrw eax,xmm1
292 ; CHECK-DAG: 66 0f c5 c2 05 pextrw eax,xmm2 292 ; CHECK-DAG: 66 0f c5 c2 05 pextrw eax,xmm2
293 ; CHECK-DAG: 66 0f c5 c3 07 pextrw eax,xmm3 293 ; CHECK-DAG: 66 0f c5 c3 07 pextrw eax,xmm3
OLDNEW
« no previous file with comments | « src/IceInst.cpp ('k') | tests_lit/llvm2ice_tests/64bit.pnacl.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698