regehr added a comment.
I'm taking a look. For reference here's the test program I'm using.
#include <stddef.h>
typedef struct {
int x[2];
} T;
int main(void) {
T f;
T *p = &f;
ptrdiff_t d = -3293184;
p += d / sizeof(T);
return 0;
}
Repository:
rL LLVM
https://reviews.llvm.org/D33305