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: test/CodeGen/JS/insertelement-chains.ll

Issue 1692803002: Remove Emscripten support (Closed) Base URL: https://chromium.googlesource.com/a/native_client/pnacl-llvm.git@master
Patch Set: 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 | « test/CodeGen/JS/globals.ll ('k') | test/CodeGen/JS/invariant-intrinsics.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; RUN: llc -emscripten-precise-f32 < %s | FileCheck %s
2
3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128"
4 target triple = "asmjs-unknown-emscripten"
5
6 ; Basic constructor.
7
8 ; CHECK: function _test0($x,$y,$z,$w) {
9 ; CHECK: $d = SIMD_float32x4($x, $y, $z, $w)
10 ; CHECK: }
11 define <4 x float> @test0(float %x, float %y, float %z, float %w) {
12 %a = insertelement <4 x float> undef, float %x, i32 0
13 %b = insertelement <4 x float> %a, float %y, i32 1
14 %c = insertelement <4 x float> %b, float %z, i32 2
15 %d = insertelement <4 x float> %c, float %w, i32 3
16 ret <4 x float> %d
17 }
18
19 ; Same as test0 but elements inserted in a different order.
20
21 ; CHECK: function _test1($x,$y,$z,$w) {
22 ; CHECK: $d = SIMD_float32x4($x, $y, $z, $w)
23 ; CHECK: }
24 define <4 x float> @test1(float %x, float %y, float %z, float %w) {
25 %a = insertelement <4 x float> undef, float %w, i32 3
26 %b = insertelement <4 x float> %a, float %y, i32 1
27 %c = insertelement <4 x float> %b, float %z, i32 2
28 %d = insertelement <4 x float> %c, float %x, i32 0
29 ret <4 x float> %d
30 }
31
32 ; Overwriting elements.
33
34 ; CHECK: function _test2($x,$y,$z,$w) {
35 ; CHECK: $h = SIMD_float32x4($x, $y, $z, $w)
36 ; CHECK: }
37 define <4 x float> @test2(float %x, float %y, float %z, float %w) {
38 %a = insertelement <4 x float> undef, float %z, i32 0
39 %b = insertelement <4 x float> %a, float %x, i32 0
40 %c = insertelement <4 x float> %b, float %w, i32 1
41 %d = insertelement <4 x float> %c, float %y, i32 1
42 %e = insertelement <4 x float> %d, float %x, i32 2
43 %f = insertelement <4 x float> %e, float %z, i32 2
44 %g = insertelement <4 x float> %f, float %y, i32 3
45 %h = insertelement <4 x float> %g, float %w, i32 3
46 ret <4 x float> %h
47 }
48
49 ; Basic splat testcase.
50
51 ; CHECK: function _test3($x) {
52 ; CHECK: $d = SIMD_float32x4_splat($x)
53 ; CHECK: }
54 define <4 x float> @test3(float %x) {
55 %a = insertelement <4 x float> undef, float %x, i32 0
56 %b = insertelement <4 x float> %a, float %x, i32 1
57 %c = insertelement <4 x float> %b, float %x, i32 2
58 %d = insertelement <4 x float> %c, float %x, i32 3
59 ret <4 x float> %d
60 }
61
62 ; Same as test3 but elements inserted in a different order.
63
64 ; CHECK: function _test4($x) {
65 ; CHECK: $d = SIMD_float32x4_splat($x)
66 ; CHECK: }
67 define <4 x float> @test4(float %x) {
68 %a = insertelement <4 x float> undef, float %x, i32 3
69 %b = insertelement <4 x float> %a, float %x, i32 1
70 %c = insertelement <4 x float> %b, float %x, i32 2
71 %d = insertelement <4 x float> %c, float %x, i32 0
72 ret <4 x float> %d
73 }
74
75 ; Insert chain.
76
77 ; CHECK: function _test5($x,$y,$z,$w) {
78 ; CHECK: $f = SIMD_float32x4_withZ(SIMD_float32x4_withY(SIMD_float32x4_withX(S IMD_float32x4_splat(Math_fround(0)),$x),$y),$z)
79 ; CHECK: }
80 define <4 x float> @test5(float %x, float %y, float %z, float %w) {
81 %a = insertelement <4 x float> undef, float %z, i32 0
82 %b = insertelement <4 x float> %a, float %x, i32 0
83 %c = insertelement <4 x float> %b, float %w, i32 1
84 %d = insertelement <4 x float> %c, float %y, i32 1
85 %e = insertelement <4 x float> %d, float %x, i32 2
86 %f = insertelement <4 x float> %e, float %z, i32 2
87 ret <4 x float> %f
88 }
89
90 ; Splat via insert+shuffle.
91
92 ; CHECK: function _test6($x) {
93 ; CHECK: $b = SIMD_float32x4_splat($x)
94 ; CHECK: }
95 define <4 x float> @test6(float %x) {
96 %a = insertelement <4 x float> undef, float %x, i32 0
97 %b = shufflevector <4 x float> %a, <4 x float> undef, <4 x i32> zeroinitiali zer
98 ret <4 x float> %b
99 }
OLDNEW
« no previous file with comments | « test/CodeGen/JS/globals.ll ('k') | test/CodeGen/JS/invariant-intrinsics.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698