diff options
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/linear/bool-cast-lp32.c | 19 | ||||
| -rw-r--r-- | validation/linear/bool-cast-lp64.c | 18 | ||||
| -rw-r--r-- | validation/linear/bool-cast.c | 1 | ||||
| -rw-r--r-- | validation/linear/cast-kinds.c | 8 | ||||
| -rw-r--r-- | validation/optim/kill-casts.c | 1 |
5 files changed, 43 insertions, 4 deletions
diff --git a/validation/linear/bool-cast-lp32.c b/validation/linear/bool-cast-lp32.c new file mode 100644 index 00000000..44a650f4 --- /dev/null +++ b/validation/linear/bool-cast-lp32.c @@ -0,0 +1,19 @@ +extern int ffun(void); +typedef void *vdp; +typedef int *sip; + +static _Bool fvdp_i(vdp a) { return a; } +static _Bool fvdp_e(vdp a) { return (_Bool)a; } +static _Bool fsip_i(sip a) { return a; } +static _Bool fsip_e(sip a) { return (_Bool)a; } +static _Bool ffun_i(void) { return ffun; } +static _Bool ffun_e(void) { return (_Bool)ffun; } + +/* + * check-name: bool-cast-pointer + * check-command: test-linearize -m32 -fdump-ir $file + * check-known-to-fail + * + * check-output-ignore + * check-output-excludes: ptrtu\\. + */ diff --git a/validation/linear/bool-cast-lp64.c b/validation/linear/bool-cast-lp64.c new file mode 100644 index 00000000..9b2a020a --- /dev/null +++ b/validation/linear/bool-cast-lp64.c @@ -0,0 +1,18 @@ +extern int ffun(void); +typedef void *vdp; +typedef int *sip; + +static _Bool fvdp_i(vdp a) { return a; } +static _Bool fvdp_e(vdp a) { return (_Bool)a; } +static _Bool fsip_i(sip a) { return a; } +static _Bool fsip_e(sip a) { return (_Bool)a; } +static _Bool ffun_i(void) { return ffun; } +static _Bool ffun_e(void) { return (_Bool)ffun; } + +/* + * check-name: bool-cast-pointer + * check-command: test-linearize -m64 -fdump-ir $file + * + * check-output-ignore + * check-output-excludes: ptrtu\\. + */ diff --git a/validation/linear/bool-cast.c b/validation/linear/bool-cast.c index 094f4438..43276a46 100644 --- a/validation/linear/bool-cast.c +++ b/validation/linear/bool-cast.c @@ -28,6 +28,7 @@ static _Bool fdbl_e(dbl a) { return (_Bool)a; } * check-output-ignore * check-output-excludes: cast\\. * check-output-excludes: fcvt[us]\\. + * check-output-excludes: ptrtu\\. * check-output-pattern(12): setne\\. * check-output-pattern(2): fcmpune\\. */ diff --git a/validation/linear/cast-kinds.c b/validation/linear/cast-kinds.c index 1742cd1e..6683ea93 100644 --- a/validation/linear/cast-kinds.c +++ b/validation/linear/cast-kinds.c @@ -88,7 +88,7 @@ vptr_2_int: iptr_2_int: .L8: <entry-point> - cast.32 %r14 <- (64) %arg1 + ptrtu.32 %r14 <- (64) %arg1 ret.32 %r14 @@ -136,7 +136,7 @@ vptr_2_uint: iptr_2_uint: .L22: <entry-point> - cast.32 %r35 <- (64) %arg1 + ptrtu.32 %r35 <- (64) %arg1 ret.32 %r35 @@ -184,7 +184,7 @@ vptr_2_long: iptr_2_long: .L36: <entry-point> - cast.64 %r56 <- (64) %arg1 + ptrtu.64 %r56 <- (64) %arg1 ret.64 %r56 @@ -232,7 +232,7 @@ vptr_2_ulong: iptr_2_ulong: .L50: <entry-point> - cast.64 %r77 <- (64) %arg1 + ptrtu.64 %r77 <- (64) %arg1 ret.64 %r77 diff --git a/validation/optim/kill-casts.c b/validation/optim/kill-casts.c index c375f5fb..140b8d20 100644 --- a/validation/optim/kill-casts.c +++ b/validation/optim/kill-casts.c @@ -21,4 +21,5 @@ void foo(struct s *x) * check-output-excludes: cast\\. * check-output-excludes: fcvt[us]\\. * check-output-excludes: utptr\\. + * check-output-excludes: ptrtu\\. */ |
