! { dg-do run }
! inspired by PR17175
REAL X
DOUBLE PRECISION Y

INTEGER, PARAMETER :: DP = KIND(Y)

INTEGER(kind=1) I1
INTEGER(kind=2) I2
INTEGER(kind=4) I4
INTEGER(kind=8) I8

X = 1.
Y = 1._DP

I1 = 10
I2 = -10
I4 = 20
I8 = -20

X = SCALE (X, I1)
X = SCALE (X, I2)
IF (X.NE.1.) CALL ABORT()
X = SCALE (X, I4)
X = SCALE (X, I8)
IF (X.NE.1.) CALL ABORT()

Y = SCALE (Y, I1)
Y = SCALE (Y, I2)
IF (Y.NE.1._DP) CALL ABORT()
Y = SCALE (Y, I4)
Y = SCALE (Y, I8)
IF (Y.NE.1._DP) CALL ABORT()

END
