llvm-project/llvm/test/CodeGen/X86/GlobalISel
Eli Friedman 3f739f736b [SelectionDAG][GISel] Make LegalizeDAG lower FNEG using integer ops.
Previously, if a floating-point type was legal, but FNEG wasn't legal,
we would use FSUB.  Instead, we should use integer ops, to preserve the
semantics.  (Alternatively, there's a compiler-rt call we could use, but
there isn't much reason to use that.)

It turns out we actually are still using this obscure codepath in a few
cases: on some targets, we have "legal" floating-point types that don't
actually support any floating-point operations.  In particular, ARM and
AArch64 are using this path.

The implementation for SelectionDAG is pretty simple because we can
reuse the infrastructure from FCOPYSIGN.

See also 9a3dc3e, the corresponding change to type legalization.

Also includes a "bonus" change to STRICT_FSUB legalization, so we can
lower a STRICT_FSUB to a float libcall.

Includes the changes to both LegalizeDAG and GlobalISel so we don't have
inconsistent results in the future.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46792 .

Differential Revision: https://reviews.llvm.org/D84287
2020-09-23 14:10:33 -07:00
..
GV.ll
add-ext.ll [GlobalISel][IRTranslator] Follow convention and put constant offset of getelementptr arithmetic on RHS. 2020-01-29 11:37:19 -08:00
add-scalar.ll
add-vec.ll
and-scalar.ll
ashr-scalar.ll [GlobalISel]: Allow targets to override how to widen constants during legalization 2019-12-03 10:41:10 -08:00
avoid-matchtable-crash.mir Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
binop.ll
br.ll
brcond.ll
callingconv.ll Recommit "[X86] Separate imm from relocImm handling." 2020-06-15 10:59:43 -07:00
calllowering-nocrashret.ll
cmp.ll [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
constant.ll [X86] Split imm handling out of selectMOV64Imm32 and add a separate isel pattern. 2020-06-10 11:12:36 -07:00
ext-x86-64.ll [X86][GlobalISel] Enable a test case for sext i32->i64 that was commented out. 2020-08-09 12:01:34 -07:00
ext.ll [X86][GlobalISel] Remove unneeded code for handling zext i8->16, i8->i64, i16->i64, i32->i64. 2020-08-09 00:26:15 -07:00
fadd-scalar.ll
fconstant.ll
fdiv-scalar.ll
fmul-scalar.ll
fpext-scalar.ll
frameIndex.ll
fsub-scalar.ll
inttoptr.ll
irtranslator-callingconv.ll [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
legalize-add-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-add-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-add-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-add.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-and-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-ashr-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-brcond.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-cmp.mir [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
legalize-constant.mir [GlobalISel]: Allow targets to override how to widen constants during legalization 2019-12-03 10:41:10 -08:00
legalize-ext-x86-64.mir [GlobalISel][AArch64][AMDGPU][X86] Teach LegalizationArtifactCombiner to combine trunc(g_constant). 2019-10-24 12:59:26 -07:00
legalize-ext.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fadd-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fdiv-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fmul-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fneg.mir [SelectionDAG][GISel] Make LegalizeDAG lower FNEG using integer ops. 2020-09-23 14:10:33 -07:00
legalize-fpext-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fptrunc-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-fsub-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-insert-vec256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-insert-vec512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-lshr-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-memop-scalar-32.mir [SelectionDAG] Always preserve offset in MachinePointerInfo 2020-04-14 15:29:41 -07:00
legalize-memop-scalar-64.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-mul-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-mul-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-mul-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-mul-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-or-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-phi.mir [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
legalize-ptr-add.mir [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
legalize-shl-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-sub-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-sub-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-sub-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-sub.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
legalize-trunc.mir
legalize-undef.mir [SelectionDAG] Always preserve offset in MachinePointerInfo 2020-04-14 15:29:41 -07:00
legalize-xor-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
lshr-scalar.ll [GlobalISel]: Allow targets to override how to widen constants during legalization 2019-12-03 10:41:10 -08:00
memop-scalar-x32.ll
memop-scalar.ll
memop-vec.ll
mul-scalar.ll
mul-vec.ll
or-scalar.ll
phi.ll [GlobalISel] Enable usage of BranchProbabilityInfo in IRTranslator. 2020-09-09 14:31:12 -07:00
ptr-add.ll [X86] Split imm handling out of selectMOV64Imm32 and add a separate isel pattern. 2020-06-10 11:12:36 -07:00
ptrtoint.ll
regbankselect-AVX2.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
regbankselect-AVX512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
regbankselect-X32.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
regbankselect-X86_64.mir [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
roundeven.ll GlobalISel: Handle llvm.roundeven 2020-07-29 20:01:12 -04:00
select-GV-32.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-GV-64.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-add-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-add-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-add-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-add-x32.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-add.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-and-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-ashr-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-blsi.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-blsr.mir Recommit "[X86] Separate imm from relocImm handling." 2020-06-15 10:59:43 -07:00
select-br.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-brcond.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-cmp.mir [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
select-constant.mir [X86] Split imm handling out of selectMOV64Imm32 and add a separate isel pattern. 2020-06-10 11:12:36 -07:00
select-copy.mir [X86] Fix gisel copy tests to fix issue reported on D77354 2020-04-03 16:15:24 +01:00
select-ext-x86-64.mir [X86][GlobalISel] Replace a misuse of SUBREG_TO_REG with INSERT_SUBREG. 2020-08-11 23:51:02 -07:00
select-ext.mir TableGen/GlobalISel: Handle non-leaf EXTRACT_SUBREG 2020-01-24 12:15:10 -08:00
select-extract-vec256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-extract-vec512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-fadd-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-fconstant.mir [Alignment] Fix overaligning bug 2020-03-27 12:57:50 +00:00
select-fdiv-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-fmul-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-fpext-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-fptrunc-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-fsub-scalar.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-inc.mir
select-insert-vec256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-insert-vec512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-intrinsic-x86-flags-read-u32.mir
select-leaf-constant.mir
select-lshr-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-memop-scalar-unordered.mir [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
select-memop-scalar-x32.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-memop-scalar.mir [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
select-memop-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-memop-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-memop-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-merge-vec256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-merge-vec512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-mul-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-mul-vec.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-or-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-phi.mir [X86][GlobalISel] Legalize G_ICMP results to s8. 2020-08-12 10:13:59 -07:00
select-ptr-add.mir [X86] Split imm handling out of selectMOV64Imm32 and add a separate isel pattern. 2020-06-10 11:12:36 -07:00
select-shl-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-sub-v128.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-sub-v256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-sub-v512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-sub.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
select-trunc.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-undef.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-unmerge-vec256.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-unmerge-vec512.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
select-xor-scalar.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
shl-scalar-widening.ll TableGen/GlobalISel: Handle non-leaf EXTRACT_SUBREG 2020-01-24 12:15:10 -08:00
shl-scalar.ll [GlobalISel]: Allow targets to override how to widen constants during legalization 2019-12-03 10:41:10 -08:00
sub-scalar.ll
sub-vec.ll
trunc.ll
undef.ll
x32-select-frameIndex.mir
x86-legalize-GV.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-inttoptr.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-ptrtoint.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-sdiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-srem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-udiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-legalize-urem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-frameIndex.mir
x86-select-inttoptr.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-ptrtoint.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-sdiv.mir TableGen/GlobalISel: Handle non-leaf EXTRACT_SUBREG 2020-01-24 12:15:10 -08:00
x86-select-srem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-trap.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-udiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86-select-urem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-fallback.ll
x86_64-irtranslator-struct-return.ll GlobalISel: Add generic instructions for memory intrinsics 2020-08-26 20:08:45 -04:00
x86_64-irtranslator.ll
x86_64-legalize-GV.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-fcmp.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-fptosi.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-inttoptr.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-ptrtoint.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-sdiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-sitofp.mir Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
x86_64-legalize-srem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-udiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-urem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-legalize-zext.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-fcmp.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-fptosi.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
x86_64-select-frameIndex.mir
x86_64-select-inttoptr.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-ptrtoint.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-sdiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-sitofp.mir GlobalISel: Infer nofpexcept flag during selection for non-strict ops 2020-06-05 13:59:46 -04:00
x86_64-select-srem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-udiv.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-urem.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
x86_64-select-zext.mir TableGen/GlobalISel: Handle non-leaf EXTRACT_SUBREG 2020-01-24 12:15:10 -08:00
xor-scalar.ll