1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 2*9880d681SAndroid Build Coastguard Worker; PR3317 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker%VT = type [0 x i32 (...)*] 5*9880d681SAndroid Build Coastguard Worker %ArraySInt16 = type { %JavaObject, i8*, [0 x i16] } 6*9880d681SAndroid Build Coastguard Worker %ArraySInt8 = type { %JavaObject, i8*, [0 x i8] } 7*9880d681SAndroid Build Coastguard Worker %Attribut = type { %ArraySInt16*, i32, i32 } 8*9880d681SAndroid Build Coastguard Worker %CacheNode = type { i8*, %JavaCommonClass*, %CacheNode*, %Enveloppe* } 9*9880d681SAndroid Build Coastguard Worker %Enveloppe = type { %CacheNode*, %ArraySInt16*, %ArraySInt16*, i8, %JavaClass*, %CacheNode } 10*9880d681SAndroid Build Coastguard Worker %JavaArray = type { %JavaObject, i8* } 11*9880d681SAndroid Build Coastguard Worker %JavaClass = type { %JavaCommonClass, i32, %VT*, [1 x %TaskClassMirror], i8*, %JavaField*, i16, %JavaField*, i16, %JavaMethod*, i16, %JavaMethod*, i16, i8*, %ArraySInt8*, i8*, %Attribut*, i16, %JavaClass**, i16, %JavaClass*, i16, i8, i32, i32, i8*, void (i8*)* } 12*9880d681SAndroid Build Coastguard Worker %JavaCommonClass = type { %JavaCommonClass**, i32, [1 x %JavaObject*], i16, %JavaClass**, i16, %ArraySInt16*, %JavaClass*, i8* } 13*9880d681SAndroid Build Coastguard Worker %JavaField = type { i8*, i16, %ArraySInt16*, %ArraySInt16*, %Attribut*, i16, %JavaClass*, i32, i16, i8* } 14*9880d681SAndroid Build Coastguard Worker %JavaMethod = type { i8*, i16, %Attribut*, i16, %Enveloppe*, i16, %JavaClass*, %ArraySInt16*, %ArraySInt16*, i8, i8*, i32, i8* } 15*9880d681SAndroid Build Coastguard Worker %JavaObject = type { %VT*, %JavaCommonClass*, i8* } 16*9880d681SAndroid Build Coastguard Worker %TaskClassMirror = type { i32, i8* } 17*9880d681SAndroid Build Coastguard Worker %UTF8 = type { %JavaObject, i8*, [0 x i16] } 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdeclare void @jnjvmNullPointerException() 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine i32 @JnJVM_java_rmi_activation_ActivationGroupID_hashCode__(%JavaObject* nocapture) nounwind { 22*9880d681SAndroid Build Coastguard Workerstart: 23*9880d681SAndroid Build Coastguard Worker %1 = getelementptr %JavaObject, %JavaObject* %0, i64 1, i32 1 ; <%JavaCommonClass**> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker %2 = load %JavaCommonClass*, %JavaCommonClass** %1 ; <%JavaCommonClass*> [#uses=4] 25*9880d681SAndroid Build Coastguard Worker %3 = icmp eq %JavaCommonClass* %2, null ; <i1> [#uses=1] 26*9880d681SAndroid Build Coastguard Worker br i1 %3, label %verifyNullExit1, label %verifyNullCont2 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard WorkerverifyNullExit1: ; preds = %start 29*9880d681SAndroid Build Coastguard Worker tail call void @jnjvmNullPointerException() 30*9880d681SAndroid Build Coastguard Worker unreachable 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard WorkerverifyNullCont2: ; preds = %start 33*9880d681SAndroid Build Coastguard Worker %4 = bitcast %JavaCommonClass* %2 to { %JavaObject, i16, i32, i64 }* ; <{ %JavaObject, i16, i32, i64 }*> [#uses=1] 34*9880d681SAndroid Build Coastguard Worker %5 = getelementptr { %JavaObject, i16, i32, i64 }, { %JavaObject, i16, i32, i64 }* %4, i64 0, i32 2 ; <i32*> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker %6 = load i32, i32* %5 ; <i32> [#uses=1] 36*9880d681SAndroid Build Coastguard Worker %7 = getelementptr %JavaCommonClass, %JavaCommonClass* %2, i64 0, i32 4 ; <%JavaClass***> [#uses=1] 37*9880d681SAndroid Build Coastguard Worker %8 = bitcast %JavaClass*** %7 to i64* ; <i64*> [#uses=1] 38*9880d681SAndroid Build Coastguard Worker %9 = load i64, i64* %8 ; <i64> [#uses=1] 39*9880d681SAndroid Build Coastguard Worker %10 = trunc i64 %9 to i32 ; <i32> [#uses=1] 40*9880d681SAndroid Build Coastguard Worker %11 = getelementptr %JavaCommonClass, %JavaCommonClass* %2, i64 0, i32 3 ; <i16*> [#uses=1] 41*9880d681SAndroid Build Coastguard Worker %12 = load i16, i16* %11 ; <i16> [#uses=1] 42*9880d681SAndroid Build Coastguard Worker %13 = sext i16 %12 to i32 ; <i32> [#uses=1] 43*9880d681SAndroid Build Coastguard Worker %14 = xor i32 %10, %6 ; <i32> [#uses=1] 44*9880d681SAndroid Build Coastguard Worker %15 = xor i32 %14, %13 ; <i32> [#uses=1] 45*9880d681SAndroid Build Coastguard Worker ret i32 %15 46*9880d681SAndroid Build Coastguard Worker} 47