Displaying 20 results from an estimated 22 matches for "sum0".
Did you mean:
sum
2016 May 04
2
GVN pass: does global value numbering remove duplicate computations in loops?
...im of the GVN pass. I have
been reading a bit about global value numbering, and from what I
understand, there are polynomial time algorithms for removing duplicate
computations from loops[1].
I have an example program[2] which computes the sum of an array twice, in
two separate accumulators.
Here, sum0 and sum1 are both sums of the array A.
void b01_sums(int size, int* A)
{
int sum0 = 0;
int sum1 = 0;
for (int i = 0; i != size; ++i)
{
sum0 = sum0 + A[i];
sum1 = sum1 + A[i];
printf("sum0: %d\nsum1: %d\n", sum0, sum1);
}
}
I would have expected global value numberi...
2018 Jul 10
9
[PATCH 0/7] PowerPC64 performance improvements
The following series adds initial vector support for PowerPC64.
On POWER9, flac --best is about 3.3x faster.
Amitay Isaacs (2):
Add m4 macro to check for C __attribute__ features
Check if compiler supports target attribute on ppc64
Anton Blanchard (5):
configure.ac: Remove SPE detection code
configure.ac: Add VSX enable/disable
configure.ac: Fix FLAC__CPU_PPC on little endian, and add
2016 May 04
2
GVN pass: does global value numbering remove duplicate computations in loops?
...and, there are polynomial time algorithms for removing
> > duplicate computations from loops[1].
>
> Yes
> The current GVN will not do it.
> > I have an example program[2] which computes the sum of an array
> > twice, in two separate accumulators.
>
> > Here, sum0 and sum1 are both sums of the array A.
>
> > void b01_sums(int size, int* A)
>
> > {
>
> > int sum0 = 0;
>
> > int sum1 = 0;
>
> > for (int i = 0; i != size; ++i)
>
> > {
>
> > sum0 = sum0 + A[i];
>
> > sum1 = sum1 +...
2017 Feb 01
2
RFC: Generic IR reductions
Constant propagation:
%sum = add <N x float> %a, %b
@llvm.reduce(ext <N x double> %sum)
if %a and %b are vector of constants, the %sum also becomes a vector of constants.
At this point you have @llvm.reduce(ext <N x double> %sum) and don't know what kind of reduction do you need.
- Elena
-----Original Message-----
From: Renato Golin [mailto:renato.golin at linaro.org]
2015 Mar 13
1
[RFC PATCH v3] Intrinsics/RTCD related fixes. Mostly x86.
...l16 * y, opus_val32 sum[ 4 ], int len)
+
+void dual_inner_prod_sse(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02,
+ int N, opus_val32 *xy1, opus_val32 *xy2)
{
- int j;
-
- __m128i vecX, vecX0, vecX1, vecX2, vecX3;
- __m128i vecY0, vecY1, vecY2, vecY3;
- __m128i sum0, sum1, sum2, sum3, vecSum;
- __m128i initSum;
-
- celt_assert(len >= 3);
-
- sum0 = _mm_setzero_si128();
- sum1 = _mm_setzero_si128();
- sum2 = _mm_setzero_si128();
- sum3 = _mm_setzero_si128();
-
- for (j=0;j<(len-7);j+=8)
- {
- vecX = _mm_loadu_si128((__m128i...
2015 Mar 12
1
[RFC PATCHv2] Intrinsics/RTCD related fixes. Mostly x86.
...l16 * y, opus_val32 sum[ 4 ], int len)
+
+void dual_inner_prod_sse(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02,
+ int N, opus_val32 *xy1, opus_val32 *xy2)
{
- int j;
-
- __m128i vecX, vecX0, vecX1, vecX2, vecX3;
- __m128i vecY0, vecY1, vecY2, vecY3;
- __m128i sum0, sum1, sum2, sum3, vecSum;
- __m128i initSum;
-
- celt_assert(len >= 3);
-
- sum0 = _mm_setzero_si128();
- sum1 = _mm_setzero_si128();
- sum2 = _mm_setzero_si128();
- sum3 = _mm_setzero_si128();
-
- for (j=0;j<(len-7);j+=8)
- {
- vecX = _mm_loadu_si128((__m128i...
2006 Feb 03
2
Speex at ARM Devices (Symbian OS)
> That's possible. In any case, u-law conversion can be done with far less
> than 1 MHz... About Speex, you would likely need to enable ARM
> optimizations and set the complexity to 1 (default it 2).
done with arm optimizations and i was still getting high load ...
guess it's from gstreamer somewhere. I'll check that next week.
thanks,
- Christophe
2015 Mar 02
13
Patch cleaning up Opus x86 intrinsics configury
The attached patch cleans up Opus's x86 intrinsics configury.
It:
* Makes ?enable-intrinsics work with clang and other non-GCC compilers
* Enables RTCD for the floating-point-mode SSE code in Celt.
* Disables use of RTCD in cases where the compiler targets an instruction set by default.
* Enables the SSE4.1 Silk optimizations that apply to the common parts of Silk when Opus is built in
2014 Feb 08
3
[PATCH 1/2] arm: Use the UAL syntax for ldr<cc>h instructions
On Fri, 7 Feb 2014, Timothy B. Terriberry wrote:
> Martin Storsjo wrote:
>> This is required in order to build using the built-in assembler
>> in clang.
>
> These patches break the gcc build (with "Error: bad instruction").
Ah, right, sorry about that.
> Documentation I've seen is contradictory on which order ({cond}{size} or
> {size}{cond}) is correct.
2006 Feb 03
0
Speex inner_prod()
...bit before the shift.
I can fix this by accumulating each term into a long, but if the code scales
the x[],y[] vectors to avoid this problem I could use parallel 16x16
multiply/adds.
You can see this problem with the following test case.
for (i=0;i<40;i++)
{
x[i]=-16384;
y[i]=-32768;
}
sum0=inner_prod(x, y, 40);
fprintf(stderr,"inner_prod0(%8d).\n",sum0);
Jerry J. Trantow
Applied Signal Processing, Inc.
jtrantow@ieee.org
2014 Feb 08
0
[PATCH v2] arm: Use the UAL syntax for instructions
...r8, [r5], #2
+ SUBSGE r12, r12, #1
+ LDRHGT r8, [r5], #2
BGT celt_pitch_xcorr_edsp_process1u_loop1
; Restore _x
SUB r4, r4, r3, LSL #1
@@ -474,7 +474,7 @@ celt_pitch_xcorr_edsp_process2_1
ADDS r12, r12, #1
; Stall
SMLABB r10, r6, r8, r10 ; sum0 = MAC16_16(sum0, x_0, y_0)
- LDRGTH r7, [r4], #2
+ LDRHGT r7, [r4], #2
SMLABT r11, r6, r8, r11 ; sum1 = MAC16_16(sum1, x_0, y_1)
BLE celt_pitch_xcorr_edsp_process2_done
LDRH r9, [r5], #2
@@ -527,8 +527,8 @@ celt_pitch_xcorr_edsp_process1a_loop_done
SUBGE...
2015 Mar 18
5
[RFC PATCH v1 0/4] Enable aarch64 intrinsics/Ne10
Hi All,
Since I continue to base my work on top of Jonathan's patch,
and my previous Ne10 fft/ifft/mdct_forward/backward patches,
I thought it would be better to just post all new patches
as a patch series. Please let me know if anyone disagrees
with this approach.
You can see wip branch of all latest patches at
https://git.linaro.org/people/viswanath.puttagunta/opus.git
Branch:
2015 Mar 31
6
[RFC PATCH v1 0/5] aarch64: celt_pitch_xcorr: Fixed point series
Hi Timothy,
As I mentioned earlier [1], I now fixed compile issues
with fixed point and resubmitting the patch.
I also have new patch that does intrinsics optimizations
for celt_pitch_xcorr targetting aarch64.
You can find my latest work-in-progress branch at [2]
For reference, you can use the Ne10 pre-built libraries
at [3]
Note that I am working with Phil at ARM to get my patch at [4]
2006 Feb 03
2
Speex inner_prod()
...I could use parallel 16x16
> multiply/adds.
What do you mean here?
> You can see this problem with the following test case.
>
> for (i=0;i<40;i++)
> {
> x[i]=-16384;
> y[i]=-32768;
> }
The value -32768 is not supposed to happen in vectors sent to
inner_prod.
> sum0=inner_prod(x, y, 40);
> fprintf(stderr,"inner_prod0(%8d).\n",sum0);
Jean-Marc
2014 Feb 07
3
[PATCH 1/2] arm: Use the UAL syntax for ldr<cc>h instructions
...r12, r12, #1
- LDRGTH r8, [r5], #2
+ LDRHGT r8, [r5], #2
BGT celt_pitch_xcorr_edsp_process1u_loop1
; Restore _x
SUB r4, r4, r3, LSL #1
@@ -474,7 +474,7 @@ celt_pitch_xcorr_edsp_process2_1
ADDS r12, r12, #1
; Stall
SMLABB r10, r6, r8, r10 ; sum0 = MAC16_16(sum0, x_0, y_0)
- LDRGTH r7, [r4], #2
+ LDRHGT r7, [r4], #2
SMLABT r11, r6, r8, r11 ; sum1 = MAC16_16(sum1, x_0, y_1)
BLE celt_pitch_xcorr_edsp_process2_done
LDRH r9, [r5], #2
@@ -527,8 +527,8 @@ celt_pitch_xcorr_edsp_process1a_loop_done
SUBGE...
2015 May 08
8
[RFC PATCH v2]: Ne10 fft fixed and previous 0/8]
Hi All,
As per Timothy's suggestion, disabling mdct_forward
for fixed point. Only effects
armv7,armv8: Extend fixed fft NE10 optimizations to mdct
Rest of patches are same as in [1]
For reference, latest wip code for opus is at [2]
Still working with NE10 team at ARM to get corner cases of
mdct_forward. Will update with another patch
when issue in NE10 gets fixed.
Regards,
Vish
[1]:
2015 May 15
11
[RFC V3 0/8] Ne10 fft fixed and previous
Hi All,
Changes from RFC v2 [1]
armv7,armv8: Extend fixed fft NE10 optimizations to mdct
- Overflow issue fixed by Phil at ARM. Ne10 wip at [2]. Should be upstream soon.
- So, re-enabled using fixed fft for mdct_forward which was disabled in RFCv2
armv7,armv8: Optimize fixed point fft using NE10 library
- Thanks to Jonathan Lennox, fixed some build fixes on iOS and some copy-paste errors
Rest
2015 Apr 28
10
[RFC PATCH v1 0/8] Ne10 fft fixed and previous
Hello Timothy / Jean-Marc / opus-dev,
This patch series is follow up on work I posted on [1].
In addition to what was posted on [1], this patch series mainly
integrates Fixed point FFT implementations in NE10 library into opus.
You can view my opus wip code at [2].
Note that while I found some issues both with the NE10 library(fixed fft)
and with Linaro toolchain (armv8 intrinsics), the work
2016 Apr 15
0
Difficulty with LRSM Rasch analysis with eRm package in R.
...nrow(X)))
results.LRSM <- LRSM(X, mpoints = 1, groupvec = rGrps, se = TRUE)
2. I don't know how to make a design matrix myself. I tried making one
with 1's along the diagonal, but it doesn't seem to work. I get an error:
Error in likLR(X, W, mpoints, groupvec, model, st.err = se, sum0,
etaStart) : Mismatch between number of rows (beta's) in W and number of
items (categories) in X!
This is from these commands:
rGrps = c(rep.int(1, nrow(X)))
W = matrix(data=NA, nrow=ncol(X), ncol=ncol(X))
for(i in 1:(ncol(X) - 8))
{
vec = c(rep(0, i - 1),1,rep(0, (ncol(X) - i)))
W[i,...
2013 Aug 08
14
[LLVMdev] [global-isel] Proposal for a global instruction selector
...(uint64_t *a, uint64_t *p, uint64_t *q, unsigned n) {
uint64_t s = 0;
while (n--)
s += *p++ * *q++;
*a = s;
}
which produces this IR after the MI builder has expanded GEPs: (I am borrowing LLVM IR syntax to describe the MI IR.)
define void @dot(i32 %a, i32 %p, i32 %q, i32 %n) {
entry:
%sum0:i64,VecBank = const i64 0
%cmp1 = icmp eq i32 %n, 0
br i1 %cmp1, label %exit, label %loop
loop:
%iv:i32,IntBank = phi i32 [ %iv2, %loop ], [ %n, %entry ]
%p1:i32,IntBank = phi i32 [ %p2, %loop ], [ %p, %entry ]
%q1:i32,IntBank = phi i32 [ %q2, %loop ], [ %q, %entry ]
%sum1:i64,VecBank...