On 01.03.19 17:13, David Hildenbrand wrote: > On 01.03.19 17:09, Richard Henderson wrote: >> On 3/1/19 3:53 AM, David Hildenbrand wrote: >>> +#ifndef S390X_VEC_H >>> +#define S390X_VEC_H >>> + >>> +typedef union S390Vector { >>> + uint64_t doubleword[2]; >>> + uint32_t word[4]; >>> + uint16_t halfword[8]; >>> + uint8_t byte[16]; >>> +} S390Vector; >>> + >>> +uint8_t s390_vec_read_element8(const S390Vector *v, uint8_t enr); >>> +uint16_t s390_vec_read_element16(const S390Vector *v, uint8_t enr); >>> +uint32_t s390_vec_read_element32(const S390Vector *v, uint8_t enr); >>> +uint64_t s390_vec_read_element64(const S390Vector *v, uint8_t enr); >>> +void s390_vec_write_element8(S390Vector *v, uint8_t enr, uint8_t data); >>> +void s390_vec_write_element16(S390Vector *v, uint8_t enr, uint16_t data); >>> +void s390_vec_write_element32(S390Vector *v, uint8_t enr, uint32_t data); >>> +void s390_vec_write_element64(S390Vector *v, uint8_t enr, uint64_t data); >>> + >> >> These, I think, should be static inline. Certainly I think they're too small >> to warrant a real call across modules, as you appear to be preparing for... > > I'm wondering, won't link-time optimization properly handle this? (so > far the theory I know of) > > But I can move these completely into the head.
Just checked the binary, definetly not optimized during link time. Will make them static inline. Thanks! -- Thanks, David / dhildenb