My opinion:
(set (subreg:SI (reg:DI) 4) ... DF_REF_READ_WRITE|DF_REF_PARTIAL?
yep
(set (subreg:HI (reg:DI) 6) ... DF_REF_READ_WRITE?
Also PARTIAL. you can rely on the content of the 0-3 word. Likewise for: (set (subreg:HI (reg:DI) 2) ... here you can rely on the content of the 4-7 word.
(set (subreg:HI (reg:SI) 2) ... DF_REF_READ_WRITE?
yep, only case without PARTIAL
(set (strict_low_part (subreg:HI (reg:DI) 6)) ... DF_REF_READ_WRITE|DF_REF_PARTIAL?
yep
(set (strict_low_part (subreg:HI (reg:SI) 2)) ... DF_REF_READ_WRITE|DF_REF_PARTIAL?
yep
(set (zero_extract:SI (reg:SI) (const_int 16) (const_int 16)) ...) DF_REF_READ_WRITE|DF_REF_PARTIAL?
yep
