Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/sse3-avx-addsub.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children | 7d135dc70f03 |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
85 ; AVX: vaddsubpd | 85 ; AVX: vaddsubpd |
86 ; CHECK-NEXT: ret | 86 ; CHECK-NEXT: ret |
87 | 87 |
88 | 88 |
89 define <4 x float> @test1b(<4 x float> %A, <4 x float>* %B) { | 89 define <4 x float> @test1b(<4 x float> %A, <4 x float>* %B) { |
90 %1 = load <4 x float>* %B | 90 %1 = load <4 x float>, <4 x float>* %B |
91 %add = fadd <4 x float> %A, %1 | 91 %add = fadd <4 x float> %A, %1 |
92 %sub = fsub <4 x float> %A, %1 | 92 %sub = fsub <4 x float> %A, %1 |
93 %vecinit6 = shufflevector <4 x float> %sub, <4 x float> %add, <4 x i32> <i32 0, i32 5, i32 2, i32 7> | 93 %vecinit6 = shufflevector <4 x float> %sub, <4 x float> %add, <4 x i32> <i32 0, i32 5, i32 2, i32 7> |
94 ret <4 x float> %vecinit6 | 94 ret <4 x float> %vecinit6 |
95 } | 95 } |
98 ; AVX: vaddsubps | 98 ; AVX: vaddsubps |
99 ; CHECK-NEXT: ret | 99 ; CHECK-NEXT: ret |
100 | 100 |
101 | 101 |
102 define <8 x float> @test2b(<8 x float> %A, <8 x float>* %B) { | 102 define <8 x float> @test2b(<8 x float> %A, <8 x float>* %B) { |
103 %1 = load <8 x float>* %B | 103 %1 = load <8 x float>, <8 x float>* %B |
104 %add = fadd <8 x float> %A, %1 | 104 %add = fadd <8 x float> %A, %1 |
105 %sub = fsub <8 x float> %A, %1 | 105 %sub = fsub <8 x float> %A, %1 |
106 %vecinit14 = shufflevector <8 x float> %sub, <8 x float> %add, <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15> | 106 %vecinit14 = shufflevector <8 x float> %sub, <8 x float> %add, <8 x i32> <i32 0, i32 9, i32 2, i32 11, i32 4, i32 13, i32 6, i32 15> |
107 ret <8 x float> %vecinit14 | 107 ret <8 x float> %vecinit14 |
108 } | 108 } |
113 ; AVX-NOT: vaddsubps | 113 ; AVX-NOT: vaddsubps |
114 ; CHECK: ret | 114 ; CHECK: ret |
115 | 115 |
116 | 116 |
117 define <4 x double> @test3b(<4 x double> %A, <4 x double>* %B) { | 117 define <4 x double> @test3b(<4 x double> %A, <4 x double>* %B) { |
118 %1 = load <4 x double>* %B | 118 %1 = load <4 x double>, <4 x double>* %B |
119 %add = fadd <4 x double> %A, %1 | 119 %add = fadd <4 x double> %A, %1 |
120 %sub = fsub <4 x double> %A, %1 | 120 %sub = fsub <4 x double> %A, %1 |
121 %vecinit6 = shufflevector <4 x double> %sub, <4 x double> %add, <4 x i32> <i32 0, i32 5, i32 2, i32 7> | 121 %vecinit6 = shufflevector <4 x double> %sub, <4 x double> %add, <4 x i32> <i32 0, i32 5, i32 2, i32 7> |
122 ret <4 x double> %vecinit6 | 122 ret <4 x double> %vecinit6 |
123 } | 123 } |
128 ; AVX-NOT: vaddsubpd | 128 ; AVX-NOT: vaddsubpd |
129 ; CHECK: ret | 129 ; CHECK: ret |
130 | 130 |
131 | 131 |
132 define <2 x double> @test4b(<2 x double> %A, <2 x double>* %B) { | 132 define <2 x double> @test4b(<2 x double> %A, <2 x double>* %B) { |
133 %1 = load <2 x double>* %B | 133 %1 = load <2 x double>, <2 x double>* %B |
134 %sub = fsub <2 x double> %A, %1 | 134 %sub = fsub <2 x double> %A, %1 |
135 %add = fadd <2 x double> %A, %1 | 135 %add = fadd <2 x double> %A, %1 |
136 %vecinit2 = shufflevector <2 x double> %sub, <2 x double> %add, <2 x i32> <i32 0, i32 3> | 136 %vecinit2 = shufflevector <2 x double> %sub, <2 x double> %add, <2 x i32> <i32 0, i32 3> |
137 ret <2 x double> %vecinit2 | 137 ret <2 x double> %vecinit2 |
138 } | 138 } |