| Index: tests_lit/llvm2ice_tests/64bit.pnacl.ll
 | 
| diff --git a/tests_lit/llvm2ice_tests/64bit.pnacl.ll b/tests_lit/llvm2ice_tests/64bit.pnacl.ll
 | 
| index f195b1e9897292f804047c13654f16bdf20dbee5..55f6832227f5de01561109e487ec24e8d01614e7 100644
 | 
| --- a/tests_lit/llvm2ice_tests/64bit.pnacl.ll
 | 
| +++ b/tests_lit/llvm2ice_tests/64bit.pnacl.ll
 | 
| @@ -120,6 +120,27 @@ entry:
 | 
|  ; ARM32:      bl      {{.*}} ignore64BitArgNoInline
 | 
|  
 | 
|  ; MIPS32-LABEL: pass64BitArg
 | 
| +; MIPS32-O2: 	sw	a3,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	sw	a2,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	li	a2,123
 | 
| +; MIPS32-O2: 	jal	{{.*}}	ignore64BitArgNoInline
 | 
| +; MIPS32-O2: 	nop
 | 
| +; MIPS32-O2: 	move	s0,v0
 | 
| +; MIPS32-O2: 	sw	s3,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	sw	s2,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	lw	a0,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	move	a1,s1
 | 
| +; MIPS32-O2: 	li	a2,123
 | 
| +; MIPS32-O2: 	jal	{{.*}}	ignore64BitArgNoInline
 | 
| +; MIPS32-O2: 	nop
 | 
| +; MIPS32-O2: 	move	s1,v0
 | 
| +; MIPS32-O2: 	sw	s7,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	sw	s6,{{.*}}(sp)
 | 
| +; MIPS32-O2: 	move	a0,s4
 | 
| +; MIPS32-O2: 	move	a1,s5
 | 
| +; MIPS32-O2: 	li	a2,123
 | 
| +; MIPS32-O2: 	jal	{{.*}}	ignore64BitArgNoInline
 | 
| +; MIPS32-O2: 	nop
 | 
|  
 | 
|  
 | 
|  declare i32 @ignore64BitArgNoInline(i64, i32, i64)
 | 
| @@ -164,6 +185,18 @@ entry:
 | 
|  ; ARM32:      mov     r2, #123
 | 
|  ; ARM32:      bl      {{.*}} ignore64BitArgNoInline
 | 
|  
 | 
| +; MIPS32-LABEL: pass64BitConstArg
 | 
| +; MIPS32-O2: 	lui	[[REG:.*]],0xdead
 | 
| +; MIPS32-O2: 	ori	[[REG1:.*]],[[REG]],0xbeef
 | 
| +; MIPS32-O2: 	lui	[[REG:.*]],0x1234
 | 
| +; MIPS32-O2: 	ori	[[REG2:.*]],[[REG]],0x5678
 | 
| +; MIPS32-O2: 	sw	[[REG1]],{{.*}}(sp)
 | 
| +; MIPS32-O2: 	sw	[[REG2]],{{.*}}(sp)
 | 
| +; MIPS32-O2: 	move	a0,a2
 | 
| +; MIPS32-O2: 	move	a1,a3
 | 
| +; MIPS32-O2: 	li	a2,123
 | 
| +; MIPS32-O2: 	jal	{{.*}}	ignore64BitArgNoInline
 | 
| +
 | 
|  define internal i32 @pass64BitUndefArg() {
 | 
|  entry:
 | 
|    %call = call i32 @ignore64BitArgNoInline(i64 0, i32 123, i64 undef)
 | 
| @@ -566,6 +599,11 @@ entry:
 | 
|  ; ARM32-LABEL: shl64BitSignedTrunc
 | 
|  ; ARM32: lsl r
 | 
|  
 | 
| +; MIPS32-LABEL: shl64BitSignedTrunc
 | 
| +; MIPS32-O2: 	sllv
 | 
| +; MIPS32-O2: 	andi	{{.*}},0x20
 | 
| +; MIPS32-O2: 	movn
 | 
| +
 | 
|  define internal i64 @shl64BitUnsigned(i64 %a, i64 %b) {
 | 
|  entry:
 | 
|    %shl = shl i64 %a, %b
 | 
| @@ -675,6 +713,16 @@ entry:
 | 
|  ; ARM32: cmp
 | 
|  ; ARM32: asrge
 | 
|  
 | 
| +; MIPS32-LABEL: shr64BitSignedTrunc
 | 
| +; MIPS32-O2: 	srlv
 | 
| +; MIPS32-O2: 	nor
 | 
| +; MIPS32-O2: 	sll
 | 
| +; MIPS32-O2: 	sllv
 | 
| +; MIPS32-O2: 	or
 | 
| +; MIPS32-O2: 	srav
 | 
| +; MIPS32-O2: 	andi	{{.*}},0x20
 | 
| +; MIPS32-O2: 	movn
 | 
| +
 | 
|  define internal i64 @shr64BitUnsigned(i64 %a, i64 %b) {
 | 
|  entry:
 | 
|    %shr = lshr i64 %a, %b
 | 
| @@ -739,6 +787,16 @@ entry:
 | 
|  ; ARM32: cmp
 | 
|  ; ARM32: lsrge
 | 
|  
 | 
| +; MIPS32-LABEL: shr64BitUnsignedTrunc
 | 
| +; MIPS32-O2: 	srlv
 | 
| +; MIPS32-O2: 	nor
 | 
| +; MIPS32-O2: 	sll
 | 
| +; MIPS32-O2: 	sllv
 | 
| +; MIPS32-O2: 	or
 | 
| +; MIPS32-O2: 	srlv
 | 
| +; MIPS32-O2: 	andi
 | 
| +; MIPS32-O2: 	movn
 | 
| +
 | 
|  define internal i64 @and64BitSigned(i64 %a, i64 %b) {
 | 
|  entry:
 | 
|    %and = and i64 %b, %a
 | 
| @@ -2173,6 +2231,10 @@ entry:
 | 
|  ; ARM32: ldr r{{.*}}, [r[[REG:.*]]]
 | 
|  ; ARM32: ldr r{{.*}}, [r[[REG]], #4]
 | 
|  
 | 
| +; MIPS32-LABEL: load64
 | 
| +; MIPS32-O2: 	lw	{{.*}},0([[REG:.*]])
 | 
| +; MIPS32-O2: 	lw	[[REG]],4([[REG]])
 | 
| +
 | 
|  define internal void @store64(i32 %a, i64 %value) {
 | 
|  entry:
 | 
|    %__2 = inttoptr i32 %a to i64*
 | 
| @@ -2192,6 +2254,10 @@ entry:
 | 
|  ; ARM32: str r{{.*}}, [r[[REG:.*]], #4]
 | 
|  ; ARM32: str r{{.*}}, [r[[REG]]]
 | 
|  
 | 
| +; MIPS32-LABEL: store64
 | 
| +; MIPS32-O2: 	sw	{{.*}},4([[REG:.*]])
 | 
| +; MIPS32-O2: 	sw	{{.*}},0([[REG]])
 | 
| +
 | 
|  define internal void @store64Const(i32 %a) {
 | 
|  entry:
 | 
|    %__1 = inttoptr i32 %a to i64*
 | 
| @@ -2215,6 +2281,14 @@ entry:
 | 
|  ; ARM32: str [[REG1]], [r[[REG:.*]], #4]
 | 
|  ; ARM32: str [[REG2]], [r[[REG]]]
 | 
|  
 | 
| +; MIPS32-LABEL: store64Const
 | 
| +; MIPS32-O2: 	lui	[[REG1:.*]],0xdead
 | 
| +; MIPS32-O2: 	ori	[[REG1:.*]],[[REG1]],0xbeef
 | 
| +; MIPS32-O2: 	lui	[[REG2:.*]],0x1234
 | 
| +; MIPS32-O2: 	ori	[[REG2:.*]],[[REG2]],0x5678
 | 
| +; MIPS32-O2: 	sw	[[REG1]],4([[REG:.*]])
 | 
| +; MIPS32-O2: 	sw	[[REG2]],0([[REG]])
 | 
| +
 | 
|  define internal i64 @select64VarVar(i64 %a, i64 %b) {
 | 
|  entry:
 | 
|    %cmp = icmp ult i64 %a, %b
 | 
| 
 |