Legalize 64 bit shifts on x86_32 using PSLLQ/PSRLQ.
Co-authored-by: iximeow <git@iximeow.net>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
test compile
|
||||
set enable_simd
|
||||
target i686 haswell
|
||||
|
||||
function u0:1(i32) -> i64 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i64 notrap aligned v0+0
|
||||
v2 = load.i32 notrap aligned v0+16
|
||||
v3 = ishl v1, v2
|
||||
return v3
|
||||
}
|
||||
|
||||
function u0:2(i32) -> i64 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i64 notrap aligned v0+0
|
||||
v2 = load.i64 notrap aligned v0+16
|
||||
v3 = ishl v1, v2
|
||||
return v3
|
||||
}
|
||||
|
||||
function u0:3(i32) -> i32 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i32 notrap aligned v0+0
|
||||
v2 = load.i64 notrap aligned v0+16
|
||||
v3 = ishl v1, v2
|
||||
return v3
|
||||
}
|
||||
|
||||
function u0:4(i32) -> i64 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i64 notrap aligned v0+0
|
||||
v2 = load.i32 notrap aligned v0+16
|
||||
v3 = ushr v1, v2
|
||||
return v3
|
||||
}
|
||||
|
||||
function u0:5(i32) -> i64 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i64 notrap aligned v0+0
|
||||
v2 = load.i64 notrap aligned v0+16
|
||||
v3 = ushr v1, v2
|
||||
return v3
|
||||
}
|
||||
|
||||
function u0:6(i32) -> i32 system_v {
|
||||
block1(v0: i32):
|
||||
v1 = load.i32 notrap aligned v0+0
|
||||
v2 = load.i64 notrap aligned v0+16
|
||||
v3 = ushr v1, v2
|
||||
return v3
|
||||
}
|
||||
Reference in New Issue
Block a user