diff options
Diffstat (limited to 'validation/linear/pointer-arith64.c')
-rw-r--r-- | validation/linear/pointer-arith64.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/validation/linear/pointer-arith64.c b/validation/linear/pointer-arith64.c new file mode 100644 index 00000000..dad10331 --- /dev/null +++ b/validation/linear/pointer-arith64.c @@ -0,0 +1,79 @@ +char *cps(char *data, short pos) +{ + data += pos; + return data; +} + +int *ipss(int *data, short pos) +{ + data += pos; + return data; +} +int *ipus(int *data, unsigned short pos) +{ + data += pos; + return data; +} + +int *ipsi(int *data, int pos) +{ + data += pos; + return data; +} +int *ipui(int *data, unsigned int pos) +{ + data += pos; + return data; +} + +/* + * check-name: pointer-arith64 + * check-command: test-linearize -Wno-decl --arch=generic -m64 $file + * + * check-output-start +cps: +.L0: + <entry-point> + sext.64 %r2 <- (16) %arg2 + add.64 %r5 <- %arg1, %r2 + ret.64 %r5 + + +ipss: +.L2: + <entry-point> + sext.64 %r10 <- (16) %arg2 + mul.64 %r11 <- %r10, $4 + add.64 %r14 <- %arg1, %r11 + ret.64 %r14 + + +ipus: +.L4: + <entry-point> + zext.64 %r19 <- (16) %arg2 + mul.64 %r20 <- %r19, $4 + add.64 %r23 <- %arg1, %r20 + ret.64 %r23 + + +ipsi: +.L6: + <entry-point> + sext.64 %r28 <- (32) %arg2 + mul.64 %r29 <- %r28, $4 + add.64 %r32 <- %arg1, %r29 + ret.64 %r32 + + +ipui: +.L8: + <entry-point> + zext.64 %r37 <- (32) %arg2 + mul.64 %r38 <- %r37, $4 + add.64 %r41 <- %arg1, %r38 + ret.64 %r41 + + + * check-output-end + */ |