1*9880d681SAndroid Build Coastguard Worker; Test that opaque constants are not creating an infinite DAGCombine loop 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s 3*9880d681SAndroid Build Coastguard Worker; XFAIL: r600, xcore 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker@a = common global i32* null, align 8 6*9880d681SAndroid Build Coastguard Worker@c = common global i32 0, align 4 7*9880d681SAndroid Build Coastguard Worker@b = common global i32* null, align 8 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind ssp uwtable 10*9880d681SAndroid Build Coastguard Workerdefine void @fn() { 11*9880d681SAndroid Build Coastguard Worker store i32* inttoptr (i64 68719476735 to i32*), i32** @a, align 8 12*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @c, align 4 13*9880d681SAndroid Build Coastguard Worker %2 = sext i32 %1 to i64 14*9880d681SAndroid Build Coastguard Worker %3 = lshr i64 %2, 12 15*9880d681SAndroid Build Coastguard Worker %4 = and i64 %3, 68719476735 16*9880d681SAndroid Build Coastguard Worker %5 = getelementptr inbounds i32, i32* null, i64 %4 17*9880d681SAndroid Build Coastguard Worker store i32* %5, i32** @b, align 8 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20