  --d__;

    /* Function Body */
    *info = 0;
    if (*n < 0) {
	*info = -1;
    } else if (*anorm < 0.f) {
	*info = -4;
    }
    if (*info != 0) {
	i__1 = -(*info);
	xerbla_("SPTCON", &i__1);
	return 0;
    }

/*     Quick return if possible */

    *rcond = 0.f;
    if (*n == 0) {
	*rcond = 1.f;
	return 0;
    } else if (*anorm == 0.f) {
	return 0;
    }

/*     Check that D(1:N) is positive. */

    i__1 = *n;
    for (i__ = 1; i__ <= i__1; ++i__) {
	if (d__[i__] <= 0.f) {
	    return 0;
	}
/* L10: */
    }

/*     Solve M(A) * x = e, where M(A) = (m(i,j)) is given by */

/*        m(i,j) =  abs(A(i,j)), i = j, */
/*        m(i,j) = -abs(A(i,j)), i .ne. j, */

/*     and e = [ 1, 1, ..., 1 ]'.  Note M(A) = M(L)*D*M(L)'. */

/*     Solve M(L) * x = e. */

    work[1] = 1.f;
    i__1 = *n;
    for (i__ = 2; i__ <= i__1; ++i__) {
	work[i__] = work[i__ - 1] * (r__1 = e[i__ - 1], dabs(r__1)) + 1.f;
/* L20: */
    }

/*     Solve D * M(L)' * x = b. */

    work[*n] /= d__[*n];
    for (i__ = *n - 1; i__ >= 1; --i__) {
	work[i__] = work[i__] / d__[i__] + work[i__ + 1] * (r__1 = e[i__], 
		dabs(r__1));
/* L30: */
    }

/*     Compute AINVNM = max(x(i)), 1<=i<=n. */

    ix = isamax_(n, &work[1], &c__1);
    ainvnm = (r__1 = work[ix], dabs(r__1));

/*     Compute the reciprocal condition number. */

    if (ainvnm != 0.f) {
	*rcond = 1.f / ainvnm / *anorm;
    }

    return 0;

/*     End of SPTCON */

} /* sptcon_ */


; RUN: opt < %s -sccp -S | not grep select

@A = constant i32 10

define i712 @test1() {
        %P = getelementptr i32, i32* @A, i32 0
        %B = ptrtoint i32* %P to i64
        %BB = and i64 %B, undef
        %C = icmp sge i64 %BB, 0
	%X = select i1 %C, i712 0, i712 1
	ret i712 %X
}



define i712 @test2(i1 %C) {
	%X = select i1 %C, i712 0, i712 undef
	ret i712 %X
}




define({
    zh: {
        'Allowed values​​:'             : '允許值:',
        'Compare all with predecessor': '預先比較所有',
        'compare changes to:'         : '比較變更:',
        'compared to'         