From 948e75dcb513195f10fa431516431ac42fa9fa2a Mon Sep 17 00:00:00 2001 From: Anton Mitrokhin Date: Fri, 26 Dec 2014 16:21:23 +0300 Subject: [PATCH] examined soa-18 runfail --- examples/intrinsics/known_fails.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/examples/intrinsics/known_fails.txt b/examples/intrinsics/known_fails.txt index a9ebd4bd..95986887 100644 --- a/examples/intrinsics/known_fails.txt +++ b/examples/intrinsics/known_fails.txt @@ -13,3 +13,20 @@ __vec16_i64 (((uint64_t *)(&tmp__2_))[0], ((uint64_t *)(&tmp__2_))[0], ((uint64_ *)(&tmp__2_))[0] ``` where 'tmp__2_' is of __vec16_i64 data type. + +2. soa-18.ispc (-O0) +The same as (1). The generator uses the structure of a kind +``` +struct l_unnamed_0 { + __vec16_i64 field0; + __vec16_i32 field1; +} ptr_; +``` +and a function +``` + __masked_store_i64(((&ptr_.field0)), _slice_ptr7_slice_offset_extract_0_, internal_mask_26_function_mask9_); +``` + +where '_slice_ptr7_slice_offset_extract_0_' is of type __vec16_i64. The +problem is, we store 64 bit ints in memory sequentually and in vectors +separately (hi and lo parts). This way, the '.field0' has wrong layout