typedef __Int16x4_t int16x4_t; typedef __Int16x8_t int16x8_t; typedef __Int32x4_t int32x4_t; typedef __Uint64x2_t uint64x2_t; int16x8_t idct32_6_neon_s1_16, idct32_6_neon_s1_17, idct32_6_neon_s1_19, idct32_6_neon_s1_21, idct32_6_neon_s1_22, idct32_6_neon_s1_25, idct32_6_neon_s1_26, idct32_6_neon_s1_28, idct32_6_neon_s1_29, idct32_6_neon_s1_30, idct32_6_neon_s3_26, idct32_6_neon_s2_9, idct32_6_neon_s2_18, idct32_6_neon_s1_13, idct32_6_neon_s1_18, idct32_6_neon_s1_20, idct32_6_neon_s2_22; int32x4_t multiply_accumulate_shift_and_narrow_s16___trans_tmp_25, multiply_accumulate_shift_and_narrow_s16___trans_tmp_23, multiply_accumulate_shift_and_narrow_s16___trans_tmp_21, multiply_accumulate_shift_and_narrow_s16___trans_tmp_19; long vgetq_lane_u64(uint64x2_t __a, int __b) { return __a[__b]; } int16x8_t vcombine_s16(int16x4_t __a, int16x4_t __b) { return __builtin_aarch64_combinev4hi(__a, __b); } int16x8_t add_multiply_shift_and_narrow_s16(int16x8_t b) { int32x4_t __trans_tmp_11, __trans_tmp_8; int16x4_t __trans_tmp_10; int16x4_t __trans_tmp_9; int16x4_t __trans_tmp_7; int16x4_t __trans_tmp_6; long __trans_tmp_2; __trans_tmp_6 = (int16x4_t)vgetq_lane_u64((uint64x2_t)b, 0); __trans_tmp_8 = __builtin_aarch64_saddlv4hi(__trans_tmp_6, __trans_tmp_7); __trans_tmp_9 = (int16x4_t)vgetq_lane_u64((uint64x2_t)b, 1); __trans_tmp_10 = (int16x4_t)__trans_tmp_2; __trans_tmp_11 = __builtin_aarch64_saddlv4hi(__trans_tmp_9, __trans_tmp_10); return vcombine_s16(({ int32x4_t a_ = __trans_tmp_8; int16x4_t result; __asm__("" : "=w"(result) : "w"(a_)); result; }), ({ int32x4_t a_ = __trans_tmp_11; int16x4_t result; __asm__("" : "=w"(result) : "w"(a_)); result; })); } int16x8_t sub_multiply_shift_and_narrow_s16(int16x8_t a, int16x8_t b) { int32x4_t __trans_tmp_17, __trans_tmp_14, __trans_tmp_5; int16x4_t __trans_tmp_16; int16x4_t __trans_tmp_15; int16x4_t __trans_tmp_13; int16x4_t __trans_tmp_12; { long __trans_tmp_1 = vgetq_lane_u64((uint64x2_t)a, 0), __trans_tmp_2 = vgetq_lane_u64((uint64x2_t)a, 1); __trans_tmp_12 = (int16x4_t)vgetq_lane_u64((uint64x2_t)b, 0); __trans_tmp_13 = (int16x4_t)__trans_tmp_1; __trans_tmp_14 = __builtin_aarch64_ssublv4hi(__trans_tmp_12, __trans_tmp_13); __trans_tmp_15 = (int16x4_t)vgetq_lane_u64((uint64x2_t)b, 1); __trans_tmp_16 = (int16x4_t)__trans_tmp_2; __trans_tmp_17 = __builtin_aarch64_ssublv4hi(__trans_tmp_15, __trans_tmp_16); int32x4_t a = __trans_tmp_14, result; __asm__("" : "=w"(result) : "w"(a), "w"(0)); __trans_tmp_5 = result; } return vcombine_s16(({ int32x4_t a_ = __trans_tmp_5; int16x4_t result; __asm__("" : "=w"(result) : ""(a_)); result; }), ({ int32x4_t a_ = __trans_tmp_17; int16x4_t result; __asm__("" : "=w"(result) : "w"(a_)); result; })); } int16x8_t multiply_accumulate_shift_and_narrow_s16(int16x8_t a, int a_const, int16x8_t b, int b_const) { int16x4_t __trans_tmp_24, __trans_tmp_22, __trans_tmp_20, __trans_tmp_18; { long __trans_tmp_1 = vgetq_lane_u64((uint64x2_t)a, 0); __trans_tmp_18 = (int16x4_t)__trans_tmp_1; int16x4_t a = __trans_tmp_18; int b = a_const; int32x4_t result; __asm__("" : "=w"(result) : "w"(a), "x"(b)); multiply_accumulate_shift_and_narrow_s16___trans_tmp_19 = result; } { long __trans_tmp_2 = vgetq_lane_u64((uint64x2_t)a, 1); __trans_tmp_20 = (int16x4_t)__trans_tmp_2; int16x4_t a = __trans_tmp_20; int b = a_const; int32x4_t result; __asm__("" : "=w"(result) : ""(a), "x"(b)); multiply_accumulate_shift_and_narrow_s16___trans_tmp_21 = result; } { long __trans_tmp_1 = vgetq_lane_u64((uint64x2_t)b, 0); __trans_tmp_22 = (int16x4_t)__trans_tmp_1; int32x4_t a = multiply_accumulate_shift_and_narrow_s16___trans_tmp_19, result; int16x4_t b = __trans_tmp_22; short c = b_const; __asm__("" : "=w"(result) : ""(a), "w"(b), "x"(c)); multiply_accumulate_shift_and_narrow_s16___trans_tmp_23 = result; } { long __trans_tmp_2 = vgetq_lane_u64((uint64x2_t)b, 1); __trans_tmp_24 = (int16x4_t)__trans_tmp_2; int32x4_t a = multiply_accumulate_shift_and_narrow_s16___trans_tmp_21, result; int16x4_t b = __trans_tmp_24; short c = b_const; __asm__("" : "=w"(result) : "0"(a), "w"(b), "x"(c)); multiply_accumulate_shift_and_narrow_s16___trans_tmp_25 = result; } return vcombine_s16( ({ int32x4_t a_ = multiply_accumulate_shift_and_narrow_s16___trans_tmp_23; int16x4_t result; __asm__("" : "=w"(result) : ""(a_)); result; }), ({ int32x4_t a_ = multiply_accumulate_shift_and_narrow_s16___trans_tmp_25; int16x4_t result; __asm__("" : "=w"(result) : ""(a_)); result; })); } static idct32_6_neon(output) { int16x8_t s1_27, s1_31, s2_8, s2_13, s2_15, s2_20, s2_21, s3_25, s3_27; idct32_6_neon_s1_17 = multiply_accumulate_shift_and_narrow_s16( idct32_6_neon_s1_20, 1, s1_27, 1); idct32_6_neon_s2_9 = multiply_accumulate_shift_and_narrow_s16(s2_8, 7, s2_15, 0); idct32_6_neon_s1_18 = multiply_accumulate_shift_and_narrow_s16( idct32_6_neon_s1_17, 15137, idct32_6_neon_s1_30, 0); idct32_6_neon_s1_29 = multiply_accumulate_shift_and_narrow_s16( idct32_6_neon_s1_17, 70, idct32_6_neon_s1_30, 0); idct32_6_neon_s1_19 = multiply_accumulate_shift_and_narrow_s16( idct32_6_neon_s1_16, 7, s1_31, 0); idct32_6_neon_s1_28 = multiply_accumulate_shift_and_narrow_s16( idct32_6_neon_s1_16, 70, s1_31, 37); idct32_6_neon_s1_13 = s2_13; idct32_6_neon_s1_20 = sub_multiply_shift_and_narrow_s16(s3_27, s2_20); s1_27 = add_multiply_shift_and_narrow_s16(s3_27); idct32_6_neon_s1_21 = sub_multiply_shift_and_narrow_s16(idct32_6_neon_s3_26, s2_21); idct32_6_neon_s1_26 = add_multiply_shift_and_narrow_s16(idct32_6_neon_s3_26); idct32_6_neon_s1_22 = sub_multiply_shift_and_narrow_s16(s3_25, idct32_6_neon_s2_22); idct32_6_neon_s1_25 = add_multiply_shift_and_narrow_s16(s3_25); vst1q_s16(output, idct32_6_neon_s2_18); vst1q_s16(0); vst1q_s16(1, s1_27); } vpx_idct32x32_34_add_neon() { int t; idct32_6_neon(&t); }